Neutrals module responsible for evaluating neutrals-plasma source and time evolution of neutrals quantities
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(source_gaussian_t), | public | :: | gas_puff |
Setup data structures for neutrals timestepping
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(neutrals_module_t), | intent(inout) | :: | self |
Instance of class |
||
| type(comm_handler_t), | intent(in) | :: | comm_handler |
Communicators |
||
| class(equilibrium_t), | intent(inout) | :: | equi |
Equilibrium |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh_cano |
Mesh (canonical) within poloidal plane |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh_stag |
Mesh (staggered) within poloidal plane |
||
| type(parallel_map_t), | intent(in) | :: | map |
Parallel map |
||
| type(penalisation_t), | intent(in) | :: | penalisation_cano |
Penalisation (canonical) |
||
| type(variable_t), | intent(inout) | :: | ne |
Electron density |
||
| type(variable_t), | intent(inout) | :: | neutrals_dens |
Neutrals density |
||
| type(variable_t), | intent(inout) | :: | neutrals_parmom |
Neutrals parallel momentum |
||
| type(variable_t), | intent(inout) | :: | neutrals_pressure |
Neutrals pressure |
||
| integer, | intent(in) | :: | isnaps_neutrals |
Snapshot number for neutrals |
||
| real(kind=GP), | intent(in) | :: | tau |
Time |
Evaluate source terms to pass to Braginskii model
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(neutrals_module_t), | intent(inout) | :: | self |
Instance of class |
||
| type(comm_handler_t), | intent(in) | :: | comm_handler |
Communicators |
||
| class(equilibrium_t), | intent(inout) | :: | equi |
Equilibrium |
||
| class(equilibrium_storage_t), | intent(inout) | :: | equi_on_cano |
Equilibrim quantities on canonical mesh |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh_cano |
Mesh (canonical) within poloidal plane |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh_stag |
Mesh (staggered) within poloidal plane |
||
| type(parallel_map_t), | intent(in) | :: | map |
Parallel map |
||
| type(variable_t), | intent(inout) | :: | ne |
Plasma density at timestep t |
||
| type(variable_t), | intent(in) | :: | pot |
Electrostatic potential |
||
| type(variable_t), | intent(inout) | :: | upar |
Parallel ion velocity |
||
| type(variable_t), | intent(in) | :: | te |
Electron temperature at timestep t |
||
| type(variable_t), | intent(in) | :: | ti |
Ion temperature at timestep t |
||
| type(variable_t), | intent(inout) | :: | neutrals_dens |
Neutrals density, on input at t, on output advanced to t+1 |
||
| type(variable_t), | intent(inout) | :: | neutrals_parmom |
Neutrals parallel momentum, on input at t, on output advanced to t+1 |
||
| type(variable_t), | intent(inout) | :: | neutrals_pressure |
Neutrals pressure, on input at t, on output advanced to t+1 |
||
| real(kind=GP), | intent(inout), | dimension(mesh_cano%get_n_points_inner()) | :: | src_ne |
Plasma particle source, to which neutrals model contribution is added |
|
| real(kind=GP), | intent(inout), | dimension(mesh_stag%get_n_points_inner()) | :: | src_upar |
Parallel momentum source, to which neutrtype(comm_handler_t), intent(in) :: comm_handler Communicatorsals model contribution is added |
|
| real(kind=GP), | intent(inout), | dimension(mesh_cano%get_n_points_inner()) | :: | src_te |
Electron temperature source, to which neutrals model contribution is added |
|
| real(kind=GP), | intent(inout), | dimension(mesh_cano%get_n_points_inner()) | :: | src_ti |
Ion temperature source, to which neutrals model contribution is added |
|
| real(kind=GP), | intent(inout), | dimension(mesh_cano%get_n_points_inner()) | :: | src_vort |
Vorticity source, to which neutrals model contribution is added |
Advances neutrals quantities from t to t+1
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(neutrals_module_t), | intent(inout) | :: | self |
Instance of class |
||
| type(comm_handler_t), | intent(in) | :: | comm_handler |
Communicators |
||
| class(equilibrium_t), | intent(inout) | :: | equi |
Equilibrium |
||
| class(equilibrium_storage_t), | intent(inout) | :: | equi_on_cano |
Equilibrim quantities on canonical mesh |
||
| class(equilibrium_storage_t), | intent(inout) | :: | equi_on_stag |
Equilibrim quantities on staggered mesh |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh_cano |
Mesh (canonical) within poloidal plane |
||
| type(mesh_cart_t), | intent(inout) | :: | mesh_stag |
Mesh (staggered) within poloidal plane |
||
| class(helmholtz_solver_t), | intent(inout) | :: | hsolver_cano |
Elliptic (2D) solver on canonical mesh |
||
| class(helmholtz_solver_t), | intent(inout) | :: | hsolver_stag |
Elliptic (2D) solver on staggered mesh |
||
| type(parallel_map_t), | intent(in) | :: | map |
Parallel map |
||
| type(penalisation_t), | intent(in) | :: | penalisation_cano |
Penalisation (canonical) |
||
| type(penalisation_t), | intent(in) | :: | penalisation_stag |
Penalisation (staggered) |
||
| type(parallel_target_flux_t), | intent(in) | :: | parflux_cano |
Parallel target flux utility (canonical) |
||
| type(parallel_target_flux_t), | intent(in) | :: | parflux_stag |
Parallel target flux utility (staggered) |
||
| type(perp_bnd_flux_t), | intent(in) | :: | perp_bnd_flux_cano |
Perpendicular boundary flux utility (canonical) |
||
| type(perp_bnd_flux_t), | intent(in) | :: | perp_bnd_flux_stag |
Perpendicular boundary flux utility (staggered) |
||
| type(inplane_operators_t), | intent(inout) | :: | opsinplane_cano |
In-plane operators (canonical) |
||
| type(inplane_operators_t), | intent(inout) | :: | opsinplane_stag |
In-plane operators (staggered) |
||
| type(boundaries_neutrals_t), | intent(inout) | :: | boundaries_neutrals |
Boundary information for the NEUTRALS model |
||
| real(kind=GP), | intent(in) | :: | tau |
Time |
||
| type(variable_t), | intent(in) | :: | ne |
Plasma density at timestep t |
||
| type(variable_t), | intent(in) | :: | pot |
Electrostatic potential |
||
| type(variable_t), | intent(inout) | :: | upar |
Parallel ion velocity |
||
| type(variable_t), | intent(inout) | :: | jpar |
Parallel current |
||
| type(variable_t), | intent(inout) | :: | apar_fluct |
Fluctuation of apar used for flutter operators |
||
| type(variable_t), | intent(in) | :: | te |
Electron temperature at timestep t |
||
| type(variable_t), | intent(in) | :: | ti |
Ion temperature at timestep t |
||
| type(variable_t), | intent(inout) | :: | neutrals_dens |
Neutrals density, on input at t, on output advanced to t+1 |
||
| type(variable_t), | intent(inout) | :: | neutrals_parmom |
Neutrals parallel momentum, on input at t, on output advanced to t+1 |
||
| type(variable_t), | intent(inout) | :: | neutrals_pressure |
Neutrals pressure, on input at t, on output advanced to t+1 |
||
| type(karniadakis_t), | intent(inout) | :: | tstep_neutrals_dens |
Time-step integrator for neutrals density |
||
| type(karniadakis_t), | intent(inout) | :: | tstep_neutrals_parmom |
Time-step integrator for neutrals parallel momentum |
||
| type(karniadakis_t), | intent(inout) | :: | tstep_neutrals_pressure |
Time-step integrator for neutrals pressure |
||
| integer, | intent(out), | dimension(4) | :: | sinfo |
Info from elliptic solver |
|
| real(kind=GP), | intent(out), | dimension(4) | :: | res |
Residual of solution of elliptic solver |
|
| logical, | intent(out) | :: | success_neutrals |
Success flag for timestep |