WarpX
WarpX copied to clipboard
[WIP] Input abstract for in situ with Ascent
Target: develop capability to allow users to input plots setup parameters, Ascent Action file will be generated, read in and performed in situ while run warpx.
This pull request is for a simple test, more functions will be added in. Input example attached here.
Discussions:
-
Since there are many different kinds of plots, contours, volumes, slice, particles, ..., do we need to go through all of them?
-
For complicated plot, we need to combine several fields setup in one plot, for example, combine particles and Ez clipped volume in this test. Will we explore this advanced feature? inputs_3d.txt
-
This is preliminary development, parameters I/O is serial. Parallel will be considered later, I think performance will not be affected much, though.
Thank you for the PR! :)
Since there are many different kinds of plots, contours, volumes, slice, particles, ..., do we need to go through all of them?
Let's provide all the ones we documented in our google docs. I think contours, slices, volumes, particles make sense, yes.
For complicated plot, we need to combine several fields setup in one plot, for example, combine particles and Ez clipped volume in this test.
Yes, I would say let's allow this, similar to our ISAV demo case where we had
- a contoured field
- a volume rendered field
- a particle species as scatter plot with glyphs
Let's maybe also add an example to this PR so that we can do example-driven feature additions :)
This is preliminary development, parameters I/O is serial. Parallel will be considered later, I think performance will not be affected much, though.
Already added, just a one-liner to change :-)
I added more functions to this PR, will push the changes.
Thanks for reminding 😊
From: Axel Huebl @.> Reply-To: ECP-WarpX/WarpX @.> Date: Monday, May 24, 2021 at 11:56 AM To: ECP-WarpX/WarpX @.> Cc: lixin ge @.>, Mention @.***> Subject: Re: [ECP-WarpX/WarpX] Input abstract for in situ with Ascent (#1890)
@ax3l commented on this pull request.
In Source/Diagnostics/Diagnostics.cpphttps://github.com/ECP-WarpX/WarpX/pull/1890#discussion_r638204289:
@@ -243,7 +243,114 @@ Diagnostics::InitBaseData ()
m_flush_format = std::make_unique<FlushFormatCheckpoint>() ;
} else if (m_format == "ascent"){
m_flush_format = std::make_unique<FlushFormatAscent>();
- } else if (m_format == "sensei"){
-
std::cout<< " m_diag_name " <<m_diag_name<<std::endl;
-
amrex::ParmParse pp_diag_viz(m_diag_name);
-
int write_yaml_file = 0;
-
pp_diag_viz.query("viz", write_yaml_file);
-
if (write_yaml_file){
@lge0303https://github.com/lge0303 did you push the changes you mentioned to the PR's branch? I still see the old version on GitHub :)
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/ECP-WarpX/WarpX/pull/1890#discussion_r638204289, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADZAQ5NUPKFJC4VM4WQN3JLTPKOMNANCNFSM42Z2FXVA.
@ax3l I'm adding a test case for this input abstract development. I want to combine all the plot functions in this test. I tried all the cases, except Revi's test case, in our google driver https://drive.google.com/drive/folders/1ZPzNgR6mzi_zuKOYwcE6l0-mFywelB9U. None of them provided a satisfactory plot. I prefer use the one you showed ISAV20. Could you give me the input and ascent_action.yaml files? Thank you very much!
Hi @lge0303, the ISAV video is in the same google drive, but we had to apply a hack from #1499. I think ~jmlarson1~ @mclarsen mentioned that that transformation is now also available in a regular Ascent release, so we can squeeze on the fly...
I think @jmlarson1 mentioned that that transformation is now also available in a regular Ascent release, so we can squeeze on the fly...
Hi @ax3l . Was the wrong name was tagged? If not, can you clarify the transformation?
Hi @jmlarson1, ouch - I am sorry. Yes, I meant to tag @mclarsen :) (Please feel free to unsubscribe from the issue Jeffrey, so we don't spam you with notifications :) )
Correct, the squeeze feature is now in our release.
@mclarsen What's the syntax should I put in ascent_actions.yaml in order to use the tranformation?
Its its a two phase process. First you have to create a filter that scales the data set along the elongated axis:
-
action: "add_pipelines"
pipelines:
pl1:
f1:
type: "scale"
params:
x_scale: 1.0
y_scale: 1.0
z_scale: 0.5
-
action: "add_scenes"
scenes:
s1:
plots:
p1:
type: "pseudocolor"
field: "braid"
pipeline: "pl1"
renders:
r1:
image_prefix: "example_image"
axis_scale_z: 2.0
This would cut the z axis in half. The second phase it to tell the rendering about the different units so the annotations are correctly written for the scaled axis. In this case, we scaled the z axis by 0.5, so we have to tell the render to unscale it with the inverse, i.e. 2.0
@mclarsen got it, Thanks!!!
@lge0303 do you have time to continue on this PR? :)
@ax3l Should this PR be closed?