Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
Abstract class for handling source terms. More...
Public Member Functions | |
procedure, pass(this) | init_base (this, rhs_fields, coef, user) |
Constructor. | |
procedure, pass(this) | free (this) |
Destructor. | |
procedure, pass(this) | compute (this, t, tstep) |
Add all the source terms to the passed right-hand side fields. | |
generic | add (this, source_term) |
Generic interface to add a source term to the list. | |
generic | add (this, json, name) |
Generic interface to add a source term to the list. | |
procedure, pass(this) | add_source_term (this, source_term) |
Append a new source term to the source_terms array. | |
procedure, pass(this) | add_json_source_terms (this, json, name) |
Read from the json file and initialize the source terms. | |
Static Public Member Functions | |
procedure(source_term_handler_init_user_source), deferred, nopass | init_user_source (source_term, rhs_fields, coef, type, user) |
Initialize the user source term. | |
Public Attributes | |
class(source_term_wrapper_t), dimension(:), allocatable | source_terms |
Array of ordinary source terms. | |
type(field_list_t) | rhs_fields |
The right-hand side. | |
type(coef_t), pointer | coef |
The coefficients of the (space, mesh) pair. | |
type(user_t), pointer | user |
The user object. | |
This class is responsible for managing the source terms and adding their contributions to the right-hand side fields. This serve as a common interface for fluid, scalar and other source terms.
In general, a derived class should implement the init_user_source
method to handle user-defined source terms and should manually implement an initializer which calls thisinit_base
.
Definition at line 62 of file source_term_handler.f90.
generic source_term_handler::source_term_handler_t::add | ( | class(source_term_handler_t), intent(inout) | this, |
type(json_file), intent(inout) | json, | ||
character(len=*), intent(in) | name | ||
) |
Definition at line 80 of file source_term_handler.f90.
generic source_term_handler::source_term_handler_t::add | ( | class(source_term_handler_t), intent(inout) | this, |
class(source_term_t), intent(in) | source_term | ||
) |
source_term | The source term to be added. |
Definition at line 80 of file source_term_handler.f90.
procedure, pass(this) source_term_handler::source_term_handler_t::add_json_source_terms | ( | class(source_term_handler_t), intent(inout) | this, |
type(json_file), intent(inout) | json, | ||
character(len=*), intent(in) | name | ||
) |
Definition at line 85 of file source_term_handler.f90.
procedure, pass(this) source_term_handler::source_term_handler_t::add_source_term | ( | class(source_term_handler_t), intent(inout) | this, |
class(source_term_t), intent(in) | source_term | ||
) |
source_term | The source term to be added. |
Definition at line 82 of file source_term_handler.f90.
procedure, pass(this) source_term_handler::source_term_handler_t::compute | ( | class(source_term_handler_t), intent(inout) | this, |
real(kind=rp), intent(in) | t, | ||
integer, intent(in) | tstep | ||
) |
t | The time value. |
tstep | The current time step. |
Definition at line 78 of file source_term_handler.f90.
procedure, pass(this) source_term_handler::source_term_handler_t::free | ( | class(source_term_handler_t), intent(inout) | this | ) |
Definition at line 76 of file source_term_handler.f90.
procedure, pass(this) source_term_handler::source_term_handler_t::init_base | ( | class(source_term_handler_t), intent(inout) | this, |
type(field_list_t), intent(in) | rhs_fields, | ||
type(coef_t), intent(in), target | coef, | ||
type(user_t), intent(in), target | user | ||
) |
Definition at line 74 of file source_term_handler.f90.
|
staticpure virtual |
Implemented in fluid_source_term::fluid_source_term_t, and scalar_source_term::scalar_source_term_t.
Definition at line 88 of file source_term_handler.f90.
Definition at line 68 of file source_term_handler.f90.
type(field_list_t) source_term_handler::source_term_handler_t::rhs_fields |
Definition at line 66 of file source_term_handler.f90.
class(source_term_wrapper_t), dimension(:), allocatable source_term_handler::source_term_handler_t::source_terms |
Definition at line 64 of file source_term_handler.f90.
Definition at line 70 of file source_term_handler.f90.