Skip to content
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

Diagnostic enhancements of postgkyl #14

Open
JunoRavin opened this issue Jan 4, 2021 · 0 comments
Open

Diagnostic enhancements of postgkyl #14

JunoRavin opened this issue Jan 4, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@JunoRavin
Copy link
Collaborator

This issue can possible be split into multiple issues/sprints, but for now collecting the most high priority diagnostic enhancements that would streamline scripting analysis of Vlasov and fluids simulations:

  • Extensions to primitive moments (and support for Vlasov simulations)
    ** Infrastructure to check if input is "finite-volume-like" or a DG field. If "finite-volume-like" call routines that compute u, T, P_{ij}, etc. (and add the primitives of the third moment)
    ** If data is a DG field, compute the primitive moments using weak operations (see Issue Weak operations in postgkyl #13)

  • Drift analysis
    ** Compute total and individual components of parallel and perpendicular flows (see attached image for example of vector perpendicular flow)
    ** By default, could use np.gradient for "finite-volume-like" data and differentiate() for a DG field. Long-term, the accuracy of gradient operations could be improved by the DG field being passed to these operations being a DG field computed from recovery.

  • Energization analysis
    ** Using drift analysis, compute total parallel/perpendicular energization, and energization from various components of the flows
    ** Implement additional common energization metrics (J dot E, Zenitani, p-Theta, Pi-D)

  • Auxiliary diagnostics
    ** Swisdak measure of agyrotropy

  • Field-particle correlation
    ** Total correlation |v|^2 E dot grad_v f
    ** Component-wise correlation v_i E_i df/dv_i
    ** General fixed-time frame-transformed correlation (v_{sim} -> v_{sim} - U, E_{sim} -> E_{sim} + U x B_{sim})
    ** Total parallel correlation ((v dot b_hat) b_hat)^2 * ((E dot b_hat) b_hat) df/d((v dot b_hat) b_hat)
    ** Total perpendicular correlation
    ** General aligned correlation which takes the magnetic field and a flow vector as inputs and computes three new velocity/field variables: v_{parallel} = (v dot b_hat) b_hat, v_{perp_2} = (U x b_hat) dot v (in direction U x b_hat), and v_{perp_1} = (b_hat x (U x b_hat)) dot v (in direction b_hat x (U x b_hat))
    *** Since many of these are total correlations, could have a single function which takes as input the velocity vector, electric field vector, and distribution function, and computes the instantaneous or averaged correlation from these three quantities
    *** Separate functions could be used to construct the transformed variables (and transformed grid to compute derivatives on)

Screen Shot 2021-01-04 at 10 01 42 AM

@JunoRavin JunoRavin added the enhancement New feature or request label Jan 4, 2021
@JunoRavin JunoRavin self-assigned this Jan 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant