Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
Base type of all fluid formulations. More...
Public Member Functions | |
procedure, pass(this) | init_base (this, msh, lx, params, scheme, user, kspv_init) |
Constructor for the base type. | |
procedure, pass(this) | scheme_free (this) |
Deallocate a fluid formulation. | |
procedure, pass(this) | validate (this) |
Validate that all components are properly allocated. | |
procedure, pass(this) | bc_apply_vel (this, t, tstep, strong) |
Apply pressure boundary conditions. | |
procedure, pass(this) | bc_apply_prs (this, t, tstep) |
Apply velocity boundary conditions. | |
procedure, pass(this) | 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, t, tstep) |
Update variable material properties. | |
procedure, pass(this) | precon_factory_ (this, pc, ksp, coef, dof, gs, bclst, pctype, pcparams) |
Preconditioner factory. | |
procedure(adjoint_fluid_scheme_init_intrf), deferred, pass | init (this, msh, lx, params, user, chkp) |
Constructor. | |
procedure(adjoint_fluid_scheme_free_intrf), deferred, pass | free (this) |
Destructor. | |
procedure(adjoint_fluid_scheme_step_intrf), deferred, pass | step (this, time, dt_controller) |
Advance one step in time. | |
procedure(adjoint_fluid_scheme_restart_intrf), deferred, pass | restart (this, chkp) |
Restart from a checkpoint. | |
procedure(adjoint_fluid_scheme_setup_bcs_intrf), deferred, pass | setup_bcs (this, user, params) |
Setup boundary conditions. | |
procedure(validate_intrf), deferred, pass | validate (this) |
Set the user inflow. | |
procedure(fluid_scheme_base_compute_cfl_intrf), deferred, pass | compute_cfl (this, dt) |
Compute the CFL number. | |
procedure(update_material_properties), deferred, pass | update_material_properties (this, t, tstep) |
Set rho and mu. | |
Static Public Member Functions | |
procedure, nopass | solver_factory (ksp, n, solver, max_iter, abstol, monitor) |
Linear solver factory, wraps a KSP constructor. | |
Public Attributes | |
type(adjoint_source_term_t) | source_term |
The source term for the momentum equation. | |
class(ksp_t), allocatable | ksp_vel |
Krylov solver for velocity. | |
class(ksp_t), allocatable | ksp_prs |
Krylov solver for pressure. | |
class(pc_t), allocatable | pc_vel |
Velocity Preconditioner. | |
class(pc_t), allocatable | pc_prs |
Velocity Preconditioner. | |
integer | vel_projection_dim |
Size of the projection space for ksp_vel. | |
integer | pr_projection_dim |
Size of the projection space for ksp_pr. | |
integer | vel_projection_activ_step |
Steps to activate projection for ksp_vel. | |
integer | pr_projection_activ_step |
Steps to activate projection for ksp_pr. | |
logical | strict_convergence |
Strict convergence for the velocity solver. | |
type(field_t), pointer | u_adj_e => null() |
Extrapolation velocity fields for LES. | |
type(field_t), pointer | v_adj_e => null() |
Extrapolated y-Velocity. | |
type(field_t), pointer | w_adj_e => null() |
Extrapolated z-Velocity. | |
type(mean_flow_t) | mean |
Mean flow field. | |
type(fluid_stats_t) | stats |
Fluid statistics. | |
type(mean_sqr_flow_t) | mean_sqr |
Mean squared flow field. | |
logical | forced_flow_rate = .false. |
Is the flow rate forced? | |
character(len=:), allocatable | nut_field_name |
The turbulent kinematic viscosity field name. | |
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) | |
type(scratch_registry_t) | scratch |
Manager for temporary fields. | |
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_adj => null() |
The velocity field. | |
type(field_t), pointer | v_adj => null() |
y-component of Velocity | |
type(field_t), pointer | w_adj => null() |
z-component of Velocity | |
type(field_t), pointer | p_adj => 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_adj_x => null() |
X-component of the right-hand side. | |
type(field_t), pointer | f_adj_y => null() |
Y-component of the right-hand side. | |
type(field_t), pointer | f_adj_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) | rho |
Density field. | |
type(field_t) | mu |
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), pointer, nopass | user_material_properties => null() |
User material properties routine. | |
Definition at line 94 of file adjoint_fluid_scheme_incompressible.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::bc_apply_prs | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout) | this, |
real(kind=rp), intent(in) | t, | ||
integer, intent(in) | tstep | ||
) |
Definition at line 135 of file adjoint_fluid_scheme_incompressible.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::bc_apply_vel | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout) | this, |
real(kind=rp), intent(in) | t, | ||
integer, intent(in) | tstep, | ||
logical, intent(in) | strong | ||
) |
Definition at line 133 of file adjoint_fluid_scheme_incompressible.f90.
|
pure virtualinherited |
Definition at line 166 of file adjoint_fluid_scheme.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::compute_cfl | ( | class(adjoint_fluid_scheme_incompressible_t), intent(in) | this, |
real(kind=rp), intent(in) | dt | ||
) |
Definition at line 137 of file adjoint_fluid_scheme_incompressible.f90.
|
pure virtualinherited |
Definition at line 153 of file adjoint_fluid_scheme.f90.
|
pure virtualinherited |
Definition at line 151 of file adjoint_fluid_scheme.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::init_base | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout), target | this, |
type(mesh_t), intent(inout), target | msh, | ||
integer, intent(in) | lx, | ||
type(json_file), intent(inout), target | params, | ||
character(len=*), intent(in) | scheme, | ||
type(user_t), intent(in), target | user, | ||
logical, intent(in) | kspv_init | ||
) |
Initialize common data for the current scheme
Definition at line 128 of file adjoint_fluid_scheme_incompressible.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::precon_factory_ | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout) | this, |
class(pc_t), intent(inout), allocatable, target | pc, | ||
class(ksp_t), intent(inout), target | ksp, | ||
type(coef_t), intent(in), target | coef, | ||
type(dofmap_t), intent(in), target | dof, | ||
type(gs_t), intent(inout), target | gs, | ||
type(bc_list_t), intent(inout), target | bclst, | ||
character(len=*) | pctype, | ||
type(json_file), intent(inout) | pcparams | ||
) |
Definition at line 148 of file adjoint_fluid_scheme_incompressible.f90.
|
pure virtualinherited |
Definition at line 157 of file adjoint_fluid_scheme.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::scheme_free | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout) | this | ) |
Definition at line 129 of file adjoint_fluid_scheme_incompressible.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::set_material_properties | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout) | this, |
type(json_file), intent(inout) | params, | ||
type(user_t), intent(in), target | user | ||
) |
this | The fluid scheme. |
params | The case paramter file. |
user | The user interface. |
Definition at line 139 of file adjoint_fluid_scheme_incompressible.f90.
|
pure virtualinherited |
Definition at line 160 of file adjoint_fluid_scheme.f90.
|
static |
Definition at line 146 of file adjoint_fluid_scheme_incompressible.f90.
|
pure virtualinherited |
Definition at line 155 of file adjoint_fluid_scheme.f90.
|
pure virtualinherited |
Definition at line 168 of file adjoint_fluid_scheme.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::update_material_properties | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout) | this, |
real(kind=rp), intent(in) | t, | ||
integer, intent(in) | tstep | ||
) |
this | The fluid scheme. |
t | Time value. |
tstep | Current time step. |
Definition at line 143 of file adjoint_fluid_scheme_incompressible.f90.
|
pure virtualinherited |
Definition at line 164 of file adjoint_fluid_scheme.f90.
procedure, pass(this) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::validate | ( | class(adjoint_fluid_scheme_incompressible_t), intent(inout), target | this | ) |
Definition at line 131 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 131 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 123 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 125 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 100 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 112 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 98 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 102 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 115 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 117 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 119 of file adjoint_fluid_scheme.f90.
logical adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::forced_flow_rate = .false. |
Definition at line 116 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 143 of file adjoint_fluid_scheme.f90.
integer(kind=i8) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::glb_n_points |
Definition at line 122 of file adjoint_fluid_scheme_incompressible.f90.
integer(kind=i8) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::glb_unique_points |
Definition at line 124 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 99 of file adjoint_fluid_scheme.f90.
class(ksp_t), allocatable adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::ksp_prs |
Definition at line 99 of file adjoint_fluid_scheme_incompressible.f90.
class(ksp_t), allocatable adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::ksp_vel |
Definition at line 98 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 140 of file adjoint_fluid_scheme.f90.
type(mean_flow_t) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::mean |
Definition at line 113 of file adjoint_fluid_scheme_incompressible.f90.
type(mean_sqr_flow_t) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::mean_sqr |
Definition at line 115 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 128 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 137 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 95 of file adjoint_fluid_scheme.f90.
character(len=:), allocatable adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::nut_field_name |
Definition at line 119 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 108 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 127 of file adjoint_fluid_scheme.f90.
class(pc_t), allocatable adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::pc_prs |
Definition at line 101 of file adjoint_fluid_scheme_incompressible.f90.
class(pc_t), allocatable adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::pc_vel |
Definition at line 100 of file adjoint_fluid_scheme_incompressible.f90.
integer adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::pr_projection_activ_step |
Definition at line 105 of file adjoint_fluid_scheme_incompressible.f90.
integer adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::pr_projection_dim |
Definition at line 103 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 134 of file adjoint_fluid_scheme.f90.
type(scratch_registry_t) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::scratch |
Definition at line 125 of file adjoint_fluid_scheme_incompressible.f90.
type(adjoint_source_term_t) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::source_term |
Definition at line 97 of file adjoint_fluid_scheme_incompressible.f90.
type(fluid_stats_t) adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::stats |
Definition at line 114 of file adjoint_fluid_scheme_incompressible.f90.
logical adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::strict_convergence |
Definition at line 106 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
x-component of Velocity
Definition at line 105 of file adjoint_fluid_scheme.f90.
type(field_t), pointer adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::u_adj_e => null() |
Extrapolated x-Velocity
Definition at line 109 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 109 of file adjoint_fluid_scheme.f90.
|
staticinherited |
Definition at line 146 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 106 of file adjoint_fluid_scheme.f90.
type(field_t), pointer adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::v_adj_e => null() |
Definition at line 110 of file adjoint_fluid_scheme_incompressible.f90.
integer adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::vel_projection_activ_step |
Definition at line 104 of file adjoint_fluid_scheme_incompressible.f90.
integer adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::vel_projection_dim |
Definition at line 102 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 109 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 107 of file adjoint_fluid_scheme.f90.
type(field_t), pointer adjoint_fluid_scheme_incompressible::adjoint_fluid_scheme_incompressible_t::w_adj_e => null() |
Definition at line 111 of file adjoint_fluid_scheme_incompressible.f90.
|
inherited |
Definition at line 109 of file adjoint_fluid_scheme.f90.
|
inherited |
Definition at line 97 of file adjoint_fluid_scheme.f90.