-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Coil-surface optimization is now enabled in the branch "develop" #17
Comments
This looks promising @zhucaoxiang. What input can I use to set q? Can you add some annotated lines to FOCUS/examples/New_d3d_RMP/d3d.input or some other example input so I can easily modify them and give it a try (its fine to have it turned off - which I assume is the default - I just need to see where/what to change)? Does this currently support q<1 to constrain coils to a "winding surface"? This would be an elegant way to do either one once you add the ability to input non-plasma surfaces. |
@logan-nc I recommend you to use some values larger than 2, e.g. q=3. The objective function has a integration over the coils, so minimizing the coil length would also reduce the coil-surface separation. It depends on which effect is dominant. I will update the examples right now. Or you can just add two lines in *.input file. It's the same way to use it as other constraints. I don't think q<1 could constrain coils lying on a winding surface. I suppose this will lead to compress the coils. We need to do more tests. As to winding surface, I plan to add an explicit representation for coils on a defined winding surface in the future. But this is not on my short-term list and Stuart is doing something like that. I can transplant and merge it in the future. |
This is now improved by specifying a separate limiter surface. Please check #42 A note on testing the function can be viewed at FOCUS_limiter_surface.html. The summary is attached below. SummaryHere is the summary.
Some observations:
|
This looks great @zhucaoxiang!
|
@ysm1887 should try using this with the 3 levels of interest pointed out at the last meeting: by the limiter, by the TF coils, and outside the cyo. Please start with just 2 coils toroidally to make things easier to understand so we can see how this feature works. |
|
I am sorry, but the coil-surface constraint does not work for me. The coils, even tho they are initialized outside the limiting surface, are going through the limiting surface during the optimization. I tried various values for the weight and the factor without changing the outcome that the coils are inside the surface after the optimization. Can anyone tell me whats going on? Thanks for any help in advance. PS: Necessary files are attached and I used FOCUS in the develop branch |
@jimlobsien I think the reason is your weights are not optimal, especially |
@jimlobsien another hint you may find helpful is to boost the number of grid points for the surface and the coils. The coil-surface separation is calculated between coil curve nodes and surface grid points. If these are sparse, it is easier for a coil node to jump through a gap in the surface grid (1 pt 10cm outside and one 10cm inside is the same penalty as both 10cm outside). I also found that initializing coils close to the surface often resulted in jumps through it.... I believe the weights must be very delicately balanced in this case. The balancing is less delicate if the initial coils are well away from the surface. |
I have added an new constraint cssep (in surfsep.h) to push coils away from any surfaces. For more details, please read the following documents.
1. surfsep documentation surfsep.pdf.
2. testing cases in google doc.
There are still some issues remained to be solved. But the results are pretty promising. Please feel free to test and use this new function. After full verifications, I will merge this the main branch.
The text was updated successfully, but these errors were encountered: