|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|


Public Member Functions | |
| procedure, pass(this) | init (this, msh, lx, params, user, chkp) |
| Boundary condition factory for density. | |
| procedure, pass(this) | free (this) |
| Free allocated memory and cleanup. | |
| procedure, pass(this) | step (this, time, dt_controller) |
| Advance the fluid simulation one timestep. | |
| procedure, pass(this) | restart (this, chkp) |
| Restart the simulation from saved state. | |
| procedure, pass(this) | setup_bcs (this, user, params) |
| Set up boundary conditions. | |
| procedure, pass(this) | scheme_init (this, msh, lx, params, scheme, user) |
| Constructors. | |
| procedure, pass(this) | scheme_free (this) |
| Destructor for the base type. | |
| procedure, pass(this) | validate (this) |
| Validate that all components are properly allocated. | |
| procedure(validate_intrf), deferred, pass | validate (this) |
| Set the user inflow. | |
| procedure, pass(this) | compute_cfl (this, dt) |
| Compute the CFL number. | |
| procedure(fluid_scheme_base_compute_cfl_intrf), deferred, pass | compute_cfl (this, dt) |
| Compute the CFL number. | |
| procedure, pass(this) | set_material_properties (this, params, user) |
| Set rho and mu. | |
| procedure, pass(this) | update_material_properties (this, time) |
| Update variable material properties. | |
| procedure(update_material_properties), deferred, pass | update_material_properties (this, time) |
| Set rho and mu. | |
| procedure, pass(this) | update_physical_flux (this) |
| Refresh the physical-flux switches from the material properties. | |
| procedure, pass(this) | compute_max_wave_speed (this) |
| Compute maximum wave speed. | |
| procedure, pass(this) | log_solver_info (this, params, scheme, lx) |
| Log solver information. | |
| procedure(fluid_scheme_base_init_intrf), deferred, pass | init (this, msh, lx, params, user, chkp) |
| Constructor. | |
| procedure(fluid_scheme_base_free_intrf), deferred, pass | free (this) |
| Destructor. | |
| procedure(fluid_scheme_base_step_intrf), deferred, pass | step (this, time, dt_controller) |
| Advance one step in time. | |
| procedure(fluid_scheme_base_restart_intrf), deferred, pass | restart (this, chkp) |
| Restart from a checkpoint. | |
| procedure(fluid_scheme_setup_bcs_intrf), deferred, pass | setup_bcs (this, user, params) |
Public Attributes | |
| type(field_t) | rho_res |
| type(field_t) | m_x_res |
| type(field_t) | m_y_res |
| type(field_t) | m_z_res |
| type(field_t) | m_e_res |
| type(field_t) | drho |
| type(field_t) | dm_x |
| type(field_t) | dm_y |
| type(field_t) | dm_z |
| type(field_t) | de |
| class(advection_t), allocatable | adv |
| class(ax_t), allocatable | ax |
| class(ax_t), allocatable | ax_stress |
| class(compressible_rhs_t), allocatable | compressible_rhs |
| type(runge_kutta_time_scheme_t) | rk_scheme |
| class(viscous_regularization_t), allocatable | viscous_regularization |
| logical | if_viscous_regularization |
| type(coupled_vector_bc_projector_t) | bcs_vel_projector |
| Boundary conditions projector for velocity constraints. | |
| type(bc_list_t) | bcs_density |
| List of boundary conditions for density. | |
| type(field_t), pointer | m_x => null() |
| The momentum field. | |
| type(field_t), pointer | m_y => null() |
| y-component of Momentum | |
| type(field_t), pointer | m_z => null() |
| z-component of Momentum | |
| type(field_t), pointer | e => null() |
| Total energy. | |
| type(field_t), pointer | temperature => null() |
| Temperature field. | |
| type(field_t), pointer | max_wave_speed => null() |
| Maximum wave speed field. | |
| type(field_t), pointer | artificial_visc => null() |
| Artificial viscosity field (without physical) | |
| type(field_t), pointer | kappa => null() |
| Thermal conductivity. | |
| real(kind=rp) | gamma |
| real(kind=rp) | mu_amax = 0.0_rp |
| Largest magnitude of the dynamic viscosity over the domain. | |
| real(kind=rp) | kappa_amax = 0.0_rp |
| Largest magnitude of the thermal conductivity over the domain. | |
| logical | add_physical_flux = .false. |
| Whether the physical viscous and heat fluxes are evaluated. | |
| logical | add_physical_stress = .false. |
| Whether the physical viscous stress is evaluated. | |
| logical | variable_material_properties = .false. |
| Whether a user routine re-evaluates the material properties every time-step, in which case the switches above have to be refreshed. | |
| integer(kind=i8) | glb_n_points |
| Global number of GLL points for the fluid (not unique) | |
| integer(kind=i8) | glb_unique_points |
| Global number of GLL points for the fluid (unique) | |
| character(len=:), allocatable | name |
| A name that can be used to distinguish this solver in e.g. user routines. | |
| type(space_t) | xh |
| Function space \( X_h \). | |
| type(dofmap_t) | dm_xh |
| Dofmap associated with \( X_h \). | |
| type(gs_t) | gs_xh |
| Gather-scatter associated with \( X_h \). | |
| type(coef_t) | c_xh |
| Coefficients associated with \( X_h \). | |
| type(time_scheme_controller_t), allocatable | ext_bdf |
| type(field_t), pointer | u => null() |
| The velocity field. | |
| type(field_t), pointer | v => null() |
| y-component of Velocity | |
| type(field_t), pointer | w => null() |
| z-component of Velocity | |
| type(field_t), pointer | p => null() |
| Pressure. | |
| type(field_series_t) | ulag |
| type(field_series_t) | vlag |
| type(field_series_t) | wlag |
| fluid field (lag) | |
| type(chkp_t), pointer | chkp => null() |
| Checkpoint. | |
| type(field_t), pointer | f_x => null() |
| X-component of the right-hand side. | |
| type(field_t), pointer | f_y => null() |
| Y-component of the right-hand side. | |
| type(field_t), pointer | f_z => null() |
| Z-component of the right-hand side. | |
| type(bc_list_t) | bcs_prs |
| Boundary conditions. | |
| type(bc_list_t) | bcs_vel |
| type(json_file), pointer | params |
| Parameters. | |
| type(mesh_t), pointer | msh => null() |
| Mesh. | |
| character(len=neko_msh_max_zlbl_len), dimension(:), allocatable | bc_labels |
| Boundary condition labels (if any) | |
| type(field_t), pointer | rho => null() |
| Density field. | |
| type(field_t), pointer | mu => null() |
| The dynamic viscosity. | |
| type(field_list_t) | material_properties |
| A helper that packs material properties to pass to the user routine. | |
| logical | freeze = .false. |
| Is the fluid frozen at the moment. | |
Static Public Attributes | |
| procedure(user_material_properties_intf), pointer, nopass | user_material_properties => null() |
| User material properties routine. | |
Private Member Functions | |
| procedure, pass, private | setup_viscous_regularization (this, params) |
Definition at line 80 of file fluid_scheme_compressible_ns.f90.
|
pure virtualinherited |
Definition at line 129 of file fluid_scheme_base.f90.
|
inherited |
| this | The compressible fluid scheme object |
| dt | Current timestep size |
Definition at line 109 of file fluid_scheme_compressible.f90.
|
inherited |
| this | The compressible fluid scheme object |
Definition at line 121 of file fluid_scheme_compressible.f90.
|
pure virtualinherited |
Definition at line 118 of file fluid_scheme_base.f90.
| procedure, pass(this) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::free | ( | class(fluid_scheme_compressible_ns_t), intent(inout) | this | ) |
| this | The fluid scheme object to destroy |
Definition at line 100 of file fluid_scheme_compressible_ns.f90.
|
pure virtualinherited |
Definition at line 116 of file fluid_scheme_base.f90.
| procedure, pass(this) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::init | ( | class(fluid_scheme_compressible_ns_t), intent(inout), target | this, |
| type(mesh_t), intent(inout), target | msh, | ||
| integer, intent(in) | lx, | ||
| type(json_file), intent(inout), target | params, | ||
| type(user_t), intent(in), target | user, | ||
| type(chkp_t), intent(inout), target | chkp | ||
| ) |
Will mark a mesh zone for the bc and finalize.
| [in,out] | object | The object to be allocated. |
| [in] | scheme | The fluid_scheme_compressible_ns_t scheme. |
| [in,out] | json | JSON object for initializing the bc. |
| [in] | coef | SEM coefficients. |
| [in] | user | The user interface. Boundary condition factory for pressure. |
Will mark a mesh zone for the bc and finalize.
| [in,out] | object | The object to be allocated. |
| [in] | scheme | The fluid_scheme_compressible_ns_t scheme. |
| [in,out] | json | JSON object for initializing the bc. |
| [in] | coef | SEM coefficients. |
| [in] | user | The user interface. Boundary condition factory for velocity |
Will mark a mesh zone for the bc and finalize.
| [in,out] | object | The object to be allocated. |
| [in] | scheme | The fluid_scheme_compressible_ns_t scheme. |
| [in,out] | json | JSON object for initializing the bc. |
| [in] | coef | SEM coefficients. |
| [in] | user | The user interface. Initialize the compressible Navier-Stokes fluid scheme |
| this | The fluid scheme object | |
| msh | Mesh data structure | |
| lx | Polynomial order in x-direction | |
| params | JSON configuration parameters | |
| user | User-defined parameters and functions | |
| chkp | Checkpoint to write to |
Definition at line 99 of file fluid_scheme_compressible_ns.f90.
|
inherited |
| this | The compressible fluid scheme object |
| params | JSON configuration parameters |
| scheme | Name of the numerical scheme |
| lx | Polynomial order in x-direction |
Definition at line 124 of file fluid_scheme_compressible.f90.
|
pure virtualinherited |
Definition at line 122 of file fluid_scheme_base.f90.
| procedure, pass(this) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::restart | ( | class(fluid_scheme_compressible_ns_t), intent(inout), target | this, |
| type(chkp_t), intent(inout) | chkp | ||
| ) |
| this | The fluid scheme object |
| dtlag | Previous timestep sizes |
| tlag | Previous time values |
Definition at line 102 of file fluid_scheme_compressible_ns.f90.
|
inherited |
| this | The compressible fluid scheme object to destroy |
Definition at line 104 of file fluid_scheme_compressible.f90.
|
inherited |
| this | The compressible fluid scheme object |
| msh | Mesh data structure |
| lx | Polynomial order in x-direction |
| params | JSON configuration parameters |
| scheme | Name of the numerical scheme |
| user | User-defined parameters and functions |
Definition at line 102 of file fluid_scheme_compressible.f90.
|
inherited |
| this | The compressible fluid scheme object |
| params | The case parameter file |
| user | The user interface |
Definition at line 112 of file fluid_scheme_compressible.f90.
|
pure virtualinherited |
Definition at line 124 of file fluid_scheme_base.f90.
| procedure, pass(this) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::setup_bcs | ( | class(fluid_scheme_compressible_ns_t), intent(inout), target | this, |
| type(user_t), intent(in), target | user, | ||
| type(json_file), intent(inout) | params | ||
| ) |
| this | The fluid scheme object |
| user | User-defined boundary conditions |
| params | Configuration parameters |
Definition at line 104 of file fluid_scheme_compressible_ns.f90.
|
private |
Definition at line 106 of file fluid_scheme_compressible_ns.f90.
|
pure virtualinherited |
Definition at line 120 of file fluid_scheme_base.f90.
| procedure, pass(this) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::step | ( | class(fluid_scheme_compressible_ns_t), intent(inout), target | this, |
| type(time_state_t), intent(in) | time, | ||
| type(time_step_controller_t), intent(in) | dt_controller | ||
| ) |
| this | The fluid scheme object |
| time | Current simulation time state |
| ext_bdf | Time integration controller |
| dt_controller | Timestep size controller |
Definition at line 101 of file fluid_scheme_compressible_ns.f90.
|
pure virtualinherited |
Definition at line 132 of file fluid_scheme_base.f90.
|
inherited |
| this | The compressible fluid scheme object |
| time | The time state |
Definition at line 115 of file fluid_scheme_compressible.f90.
|
inherited |
Decides whether the physical Navier-Stokes viscous and heat fluxes have to be evaluated at all, by testing \( \max_i |\mu_i| \) and \( \max_i |\kappa_i| \) against zero.
On a device backend the reduction runs as a kernel over the device resident arrays. Inspecting the host mirrors mux and kappax instead would be wrong as well as slow: field_cfill, and the device_math routines a user file calls, only write x_d, so the host copies stay at their initial zero and the solver would silently degrade to Euler.
The reduction is global, so all ranks agree on the branch taken even when the viscosity is non-zero on only some of them.
| this | The compressible fluid scheme object |
Definition at line 118 of file fluid_scheme_compressible.f90.
|
pure virtualinherited |
Definition at line 127 of file fluid_scheme_base.f90.
|
inherited |
| this | The compressible fluid scheme object |
Definition at line 107 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 88 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 90 of file fluid_scheme_compressible.f90.
| class(advection_t), allocatable fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::adv |
Definition at line 84 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 77 of file fluid_scheme_compressible.f90.
| class(ax_t), allocatable fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::ax |
Definition at line 85 of file fluid_scheme_compressible_ns.f90.
| class(ax_t), allocatable fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::ax_stress |
Definition at line 86 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 96 of file fluid_scheme_base.f90.
| type(bc_list_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::bcs_density |
Definition at line 96 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 88 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 90 of file fluid_scheme_base.f90.
| type(coupled_vector_bc_projector_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::bcs_vel_projector |
Definition at line 94 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 65 of file fluid_scheme_base.f90.
Definition at line 77 of file fluid_scheme_base.f90.
| class(compressible_rhs_t), allocatable fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::compressible_rhs |
Definition at line 87 of file fluid_scheme_compressible_ns.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::de |
Definition at line 83 of file fluid_scheme_compressible_ns.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::dm_x |
Definition at line 83 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 63 of file fluid_scheme_base.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::dm_y |
Definition at line 83 of file fluid_scheme_compressible_ns.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::dm_z |
Definition at line 83 of file fluid_scheme_compressible_ns.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::drho |
Definition at line 83 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 74 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 67 of file fluid_scheme_base.f90.
Definition at line 80 of file fluid_scheme_base.f90.
Definition at line 82 of file fluid_scheme_base.f90.
Definition at line 84 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 108 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 80 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 96 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 98 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 64 of file fluid_scheme_base.f90.
| logical fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::if_viscous_regularization |
Definition at line 91 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 78 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 85 of file fluid_scheme_compressible.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::m_e_res |
Definition at line 82 of file fluid_scheme_compressible_ns.f90.
|
inherited |
x-component of Momentum
Definition at line 71 of file fluid_scheme_compressible.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::m_x_res |
Definition at line 82 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 72 of file fluid_scheme_compressible.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::m_y_res |
Definition at line 82 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 73 of file fluid_scheme_compressible.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::m_z_res |
Definition at line 82 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 105 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 76 of file fluid_scheme_compressible.f90.
Definition at line 93 of file fluid_scheme_base.f90.
Definition at line 102 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 83 of file fluid_scheme_compressible.f90.
|
inherited |
Definition at line 60 of file fluid_scheme_base.f90.
Definition at line 73 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 92 of file fluid_scheme_base.f90.
Definition at line 99 of file fluid_scheme_base.f90.
| type(field_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::rho_res |
Definition at line 82 of file fluid_scheme_compressible_ns.f90.
| type(runge_kutta_time_scheme_t) fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::rk_scheme |
Definition at line 88 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 75 of file fluid_scheme_compressible.f90.
x-component of Velocity
Definition at line 70 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 74 of file fluid_scheme_base.f90.
|
staticinherited |
Definition at line 111 of file fluid_scheme_base.f90.
Definition at line 71 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 93 of file fluid_scheme_compressible.f90.
| class(viscous_regularization_t), allocatable fluid_scheme_compressible_ns::fluid_scheme_compressible_ns_t::viscous_regularization |
Definition at line 90 of file fluid_scheme_compressible_ns.f90.
|
inherited |
Definition at line 74 of file fluid_scheme_base.f90.
Definition at line 72 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 74 of file fluid_scheme_base.f90.
|
inherited |
Definition at line 62 of file fluid_scheme_base.f90.