|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|


Public Member Functions | |
| procedure, pass(this) | init (this, msh, coef, gs, params_adjoint, params_primal, numerics_params, user, chkp, ulag, vlag, wlag, time_scheme, rho) |
| Constructor. | |
| procedure, pass(this) | restart (this, chkp) |
| To restart. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | step (this, time, ext_bdf, dt_controller) |
| Solve for the current timestep. | |
| procedure, pass(this) | setup_bcs_ (this, user) |
| Setup the boundary conditions. | |
| procedure, pass(this) | scheme_init (this, msh, c_xh, gs_xh, params_adjoint, params_primal, scheme, user, rho) |
| Constructor for the base type. | |
| procedure, pass(this) | scheme_free (this) |
| Destructor for the base type. | |
| procedure, pass(this) | validate (this) |
| Validate successful initialization. | |
| procedure, pass(this) | set_material_properties (this, params_primal, user) |
| Set lambda and cp. | |
| procedure, pass(this) | update_material_properties (this, time) |
| Update variable material properties. | |
| procedure(adjoint_scalar_scheme_init_intrf), deferred, pass | init (this, msh, coef, gs, params_adjoint, params_primal, numerics_params, user, chkp, ulag, vlag, wlag, time_scheme, rho) |
| Constructor. | |
| procedure(adjoint_scalar_scheme_free_intrf), deferred, pass | free (this) |
| Destructor. | |
| procedure(adjoint_scalar_scheme_step_intrf), deferred, pass | step (this, time, ext_bdf, dt_controller) |
| Solve for the current timestep. | |
| procedure(adjoint_scalar_scheme_restart_intrf), deferred, pass | restart (this, chkp) |
| Restart from a checkpoint. | |
Public Attributes | |
| type(field_t) | s_adj_res |
| The residual of the transport equation. | |
| type(field_t) | ds_adj |
| Solution increment. | |
| class(ax_t), allocatable | ax |
| Helmholz operator. | |
| type(projection_t) | proj_s |
| Solution projection. | |
| type(zero_dirichlet_t) | bc_res |
| Dirichlet conditions for the residual Collects all the Dirichlet condition facets into one bc and applies 0, Since the values never change there during the solve. | |
| type(bc_list_t) | bclst_ds |
A bc list for the bc_res. Contains only that, essentially just to wrap the if statement determining whether to apply on the device or CPU. Also needed since a bc_list is the type that is sent to, e.g. solvers, cannot just send bc_res on its own. | |
| class(advection_adjoint_t), allocatable | adv |
| Advection operator. | |
| logical | oifs |
| type(field_t) | advs |
| class(scalar_residual_t), allocatable | res |
Computes the residual of the equation, i.e. s_adj_res. | |
| class(rhs_maker_ext_t), allocatable | makeext |
| Contributions to kth order extrapolation scheme. | |
| class(rhs_maker_bdf_t), allocatable | makebdf |
| Contributions to the RHS from lagged BDF terms. | |
| class(rhs_maker_oifs_t), allocatable | makeoifs |
| Contributions to the RHS from the OIFS method. | |
| character(len=:), allocatable | name |
| A name that can be used to distinguish this solver in e.g. user routines. | |
| character(len=:), allocatable | primal_name |
| The name of the corresponding primal scalar. | |
| type(field_t), pointer | u |
| x-component of Velocity | |
| type(field_t), pointer | v |
| y-component of Velocity | |
| type(field_t), pointer | w |
| z-component of Velocity | |
| type(field_t), pointer | s |
| The forward scalar. | |
| type(field_t), pointer | s_adj |
| The adjoint scalar. | |
| type(field_series_t) | s_adj_lag |
| Lag arrays, i.e. solutions at previous timesteps. | |
| type(space_t), pointer | xh |
| Function space \( X_h \). | |
| type(dofmap_t), pointer | dm_xh |
| Dofmap associated with \( X_h \). | |
| type(gs_t), pointer | gs_xh |
| Gather-scatter associated with \( X_h \). | |
| type(coef_t), pointer | c_xh |
| Coefficients associated with \( X_h \). | |
| type(field_t), pointer | f_xh => null() |
| Right-hand side. | |
| type(scalar_source_term_t) | source_term |
| The source term for equation. | |
| class(ksp_t), allocatable | ksp |
| Krylov solver. | |
| integer | ksp_maxiter |
| Max iterations in the Krylov solver. | |
| integer | projection_dim |
| Projection space size. | |
| integer | projection_activ_step |
| class(pc_t), allocatable | pc |
| Preconditioner. | |
| type(bc_list_t) | bcs |
| List of boundary conditions, including the user one. | |
| type(json_file), pointer | params |
| Case paramters. | |
| type(mesh_t), pointer | msh => null() |
| Mesh. | |
| type(chkp_t), pointer | chkp => null() |
| Checkpoint for restarts. | |
| character(len=:), allocatable | nut_field_name |
| The turbulent kinematic viscosity field name. | |
| type(field_t), pointer | rho => null() |
| Density. | |
| type(field_t) | lambda |
| Thermal diffusivity. | |
| type(field_t) | cp |
| Specific heat capacity. | |
| real(kind=rp) | pr_turb |
| Turbulent Prandtl number. | |
| type(field_list_t) | material_properties |
| Field list with cp and lambda. | |
| logical | variable_material_properties = .false. |
| Is lambda varying in time? Currently only due to LES models. | |
| type(field_t) | abx1 |
| type(field_t) | abx2 |
Static Public Attributes | |
| procedure(user_material_properties_intf), pointer, nopass | user_material_properties => null() |
Definition at line 77 of file adjoint_scalar_pnpn.f90.
| procedure, pass(this) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::free | ( | class(adjoint_scalar_pnpn_t), intent(inout) | this | ) |
Definition at line 129 of file adjoint_scalar_pnpn.f90.
|
pure virtualinherited |
Definition at line 167 of file adjoint_scalar_scheme.f90.
| procedure, pass(this) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::init | ( | class(adjoint_scalar_pnpn_t), intent(inout), target | this, |
| type(mesh_t), intent(in), target | msh, | ||
| type(coef_t), intent(in), target | coef, | ||
| type(gs_t), intent(inout), target | gs, | ||
| type(json_file), intent(inout), target | params_adjoint, | ||
| type(json_file), intent(inout), target | params_primal, | ||
| type(json_file), intent(inout), target | numerics_params, | ||
| type(user_t), intent(in), target | user, | ||
| type(chkp_t), intent(inout), target | chkp, | ||
| type(field_series_t), intent(in), target | ulag, | ||
| type(field_series_t), intent(in), target | vlag, | ||
| type(field_series_t), intent(in), target | wlag, | ||
| type(time_scheme_controller_t), intent(in), target | time_scheme, | ||
| type(field_t), intent(in), target | rho | ||
| ) |
initialize the scheme.
| [in,out] | this | The object. |
| [in] | msh | The mesh. |
| [in] | coef | The coefficients of the mesh. |
| [in] | gs | The gather-scatter. |
| [in,out] | params_adjoint | The snippet of the json for the adjoint scalar. |
| [in,out] | params_primal | The snippet of the json for the primal scalar. |
| [in,out] | numerics_params | The numeric parameters json. |
| [in] | user | Type with user-defined procedures. |
| [in,out] | chkp | The checkpoint object. |
| [in] | ulag | Lag arrays for the x velocity component. |
| [in] | vlag | Lag arrays for the y velocity component. |
| [in] | wlag | Lag arrays for the z velocity component. |
| [in] | time_scheme | The time-integration controller. |
| [in] | rho | The fluid density. |
Definition at line 125 of file adjoint_scalar_pnpn.f90.
|
pure virtualinherited |
Definition at line 165 of file adjoint_scalar_scheme.f90.
| procedure, pass(this) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::restart | ( | class(adjoint_scalar_pnpn_t), intent(inout), target | this, |
| type(chkp_t), intent(inout) | chkp | ||
| ) |
Definition at line 127 of file adjoint_scalar_pnpn.f90.
|
pure virtualinherited |
Definition at line 171 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 155 of file adjoint_scalar_scheme.f90.
|
inherited |
| [in,out] | this | The object. |
| msh | The mesh. | |
| c_Xh | The coefficients. | |
| gs_Xh | The gather-scatter. | |
| params_adjoint | The parameter dictionary in json for the adjoint. | |
| params_primal | The parameter dictionary in json for the primal. | |
| scheme | The name of the scalar scheme. | |
| user | Type with user-defined procedures. | |
| rho | The density of the fluid. |
Definition at line 153 of file adjoint_scalar_scheme.f90.
|
inherited |
| [in,out] | this | The object. |
| params_primal | The case file configuration dictionary. | |
| user | The user interface. |
Definition at line 159 of file adjoint_scalar_scheme.f90.
| procedure, pass(this) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::setup_bcs_ | ( | class(adjoint_scalar_pnpn_t), intent(inout) | this, |
| type(user_t), intent(in), target | user | ||
| ) |
| [in,out] | this | The this. |
| user | The user object binding the user-defined routines. |
Definition at line 133 of file adjoint_scalar_pnpn.f90.
| procedure, pass(this) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::step | ( | class(adjoint_scalar_pnpn_t), intent(inout) | this, |
| type(time_state_t), intent(in) | time, | ||
| type(time_scheme_controller_t), intent(in) | ext_bdf, | ||
| type(time_step_controller_t), intent(in) | dt_controller | ||
| ) |
Definition at line 131 of file adjoint_scalar_pnpn.f90.
|
pure virtualinherited |
Definition at line 169 of file adjoint_scalar_scheme.f90.
|
inherited |
| [in,out] | this | The object. |
| time | The time state. |
Definition at line 162 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 157 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 148 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 148 of file adjoint_scalar_scheme.f90.
| class(advection_adjoint_t), allocatable adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::adv |
Definition at line 103 of file adjoint_scalar_pnpn.f90.
| type(field_t) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::advs |
Definition at line 109 of file adjoint_scalar_pnpn.f90.
| class(ax_t), allocatable adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::ax |
Definition at line 86 of file adjoint_scalar_pnpn.f90.
| type(zero_dirichlet_t) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::bc_res |
Definition at line 94 of file adjoint_scalar_pnpn.f90.
| type(bc_list_t) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::bclst_ds |
Definition at line 100 of file adjoint_scalar_pnpn.f90.
|
inherited |
Definition at line 126 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 110 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 132 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 140 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 106 of file adjoint_scalar_scheme.f90.
| type(field_t) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::ds_adj |
Definition at line 83 of file adjoint_scalar_pnpn.f90.
|
inherited |
Definition at line 112 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 108 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 116 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 118 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 138 of file adjoint_scalar_scheme.f90.
| class(rhs_maker_bdf_t), allocatable adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::makebdf |
Definition at line 118 of file adjoint_scalar_pnpn.f90.
| class(rhs_maker_ext_t), allocatable adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::makeext |
Definition at line 115 of file adjoint_scalar_pnpn.f90.
| class(rhs_maker_oifs_t), allocatable adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::makeoifs |
Definition at line 121 of file adjoint_scalar_pnpn.f90.
|
inherited |
Definition at line 144 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 130 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 88 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 134 of file adjoint_scalar_scheme.f90.
| logical adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::oifs |
Definition at line 106 of file adjoint_scalar_pnpn.f90.
|
inherited |
Definition at line 128 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 124 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 142 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 90 of file adjoint_scalar_scheme.f90.
| type(projection_t) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::proj_s |
Definition at line 89 of file adjoint_scalar_pnpn.f90.
|
inherited |
Definition at line 122 of file adjoint_scalar_scheme.f90.
|
inherited |
Steps to activate projection for ksp
Definition at line 120 of file adjoint_scalar_scheme.f90.
| class(scalar_residual_t), allocatable adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::res |
Definition at line 112 of file adjoint_scalar_pnpn.f90.
|
inherited |
Definition at line 136 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 98 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 100 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 102 of file adjoint_scalar_scheme.f90.
| type(field_t) adjoint_scalar_pnpn::adjoint_scalar_pnpn_t::s_adj_res |
Definition at line 80 of file adjoint_scalar_pnpn.f90.
|
inherited |
Definition at line 114 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 92 of file adjoint_scalar_scheme.f90.
|
staticinherited |
Definition at line 149 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 94 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 146 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 96 of file adjoint_scalar_scheme.f90.
|
inherited |
Definition at line 104 of file adjoint_scalar_scheme.f90.