Advances the reduced FLU-ORB electron density, parallel flow, pressure, and Ohm response. More...
#include "efluid.hpp"
Public Types | |
| using | FieldP2COperatorHook = void(*)(int matnum, const Kokkos::View< Real *** > &in, Kokkos::View< Real *** > &out) |
| Signature of an injectable projection-to-coefficient solve operator. | |
| using | MatmulOperatorHook = void(*)(int matnum, const Kokkos::View< Real *** > &in, Kokkos::View< Real *** > &out) |
| Signature of an injectable matrix multiplication operator. | |
Static Public Member Functions | |
| static void | apar_rk4 (int i_it) |
| Execute one RK4 stage for the Ohm-law parallel vector potential. | |
| static void | clear_test_operator_hooks () |
| Clear test hooks and restore production field operators. | |
| static void | destroyStaticViews () |
Release electron-fluid Kokkos allocations before Kokkos::finalize(). | |
| static Kokkos::View< Real *** > | get_apar_ohm () |
| Return a shallow view of the Ohm-law \(A_\parallel\) coefficients. | |
| static void | icond_efluid () |
| Project the configured analytic electron-density initial condition into spline coefficients. | |
| static void | init_efluid () |
| Allocate fluid unknowns and RK4 work arrays on the field B-spline bounds. | |
| static void | ne_rk4 (int i_it) |
| Execute one RK4 stage for electron density. | |
| static void | pe_rk4 (int i_it) |
| Execute one RK4 stage for electron pressure. | |
| static void | push_apar () |
| Evaluate the generalized-Ohm RHS \(\partial A_\parallel/\partial t\) into RK4 work storage. | |
| static void | push_ne () |
| Evaluate the electron continuity-equation RHS into RK4 work storage. | |
| static void | push_pe () |
| Evaluate the electron pressure-closure RHS into RK4 work storage. | |
| static void | restart_fields (int flag, int datn) |
| Read or write pullback and electron-fluid restart fields. | |
| static void | set_test_operator_hooks (MatmulOperatorHook matmul_hook, FieldP2COperatorHook fieldP2C_hook) |
| Install deterministic matrix operators for unit tests. | |
| static void | sol_phi () |
| Solve quasineutrality for electrostatic potential using the current electron density. | |
| static void | sol_ue () |
| Solve the electron parallel-flow constraint from current/Ampere coupling. | |
| static void | update_field (int i_it, Kokkos::View< Real *** > &work0, Kokkos::View< Real *** > &work1, Kokkos::View< Real *** > &work2) |
| Combine one RK4 stage into a fluid field and its accumulators. | |
| static void | update_work1 (int iter, Kokkos::View< Real *** > &work1) |
Scale or accumulate an RK4 stage derivative in work1. | |
Advances the reduced FLU-ORB electron density, parallel flow, pressure, and Ohm response.
This model replaces kinetic electrons with field-aligned fluid continuity, generalized Ohm, and pressure equations while retaining kinetic-ion coupling through the common finite-element field solver. Unknowns are stored as tensor-product B-spline coefficients and advanced with classical RK4.
efluid.F90, module efluid.| using orb5x::EfluidModule::FieldP2COperatorHook = void (*)(int matnum, const Kokkos::View<Real***>& in, Kokkos::View<Real***>& out) |
Signature of an injectable projection-to-coefficient solve operator.
| [in] | matnum | Field-solver matrix selector. |
| [in] | in | Projected coefficients. |
| [out] | out | Solution-space spline coefficients. |
| using orb5x::EfluidModule::MatmulOperatorHook = void (*)(int matnum, const Kokkos::View<Real***>& in, Kokkos::View<Real***>& out) |
Signature of an injectable matrix multiplication operator.
| [in] | matnum | Field-solver matrix selector. |
| [in] | in | Solution-space spline coefficients. |
| [out] | out | Projected coefficients. |
|
static |
Execute one RK4 stage for the Ohm-law parallel vector potential.
| [in] | i_it | RK4 stage selector expected by update_field(). |
|
static |
Clear test hooks and restore production field operators.
|
static |
Release electron-fluid Kokkos allocations before Kokkos::finalize().
|
static |
Return a shallow view of the Ohm-law \(A_\parallel\) coefficients.
|
static |
Project the configured analytic electron-density initial condition into spline coefficients.
|
static |
Allocate fluid unknowns and RK4 work arrays on the field B-spline bounds.
|
static |
Execute one RK4 stage for electron density.
| [in] | i_it | RK4 stage selector expected by update_field(). |
|
static |
Execute one RK4 stage for electron pressure.
| [in] | i_it | RK4 stage selector expected by update_field(). |
|
static |
Evaluate the generalized-Ohm RHS \(\partial A_\parallel/\partial t\) into RK4 work storage.
|
static |
Evaluate the electron continuity-equation RHS into RK4 work storage.
|
static |
Evaluate the electron pressure-closure RHS into RK4 work storage.
|
static |
Read or write pullback and electron-fluid restart fields.
| [in] | flag | 1 reads and 2 writes a checkpoint. |
| [in] | datn | Restart record number used to construct the filename. |
efluid.F90:restart_fields.
|
static |
Install deterministic matrix operators for unit tests.
Null hooks fall back to production FieldsModule operations.
| [in] | matmul_hook | Optional replacement for field-matrix multiplication. |
| [in] | fieldP2C_hook | Optional replacement for projection-to-coefficient solves. |
|
static |
Solve quasineutrality for electrostatic potential using the current electron density.
|
static |
Solve the electron parallel-flow constraint from current/Ampere coupling.
|
static |
Combine one RK4 stage into a fluid field and its accumulators.
| [in] | i_it | RK4 stage selector. |
| [in,out] | work0 | Evolving fluid-field coefficients. |
| [in,out] | work1 | Current stage derivative/temporary state. |
| [in,out] | work2 | Weighted RK4 derivative accumulator. |
|
static |
Scale or accumulate an RK4 stage derivative in work1.
| [in] | iter | Zero-based RK4 stage selector. |
| [in,out] | work1 | Stage derivative array. |