|
Neko 0.9.1
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 63 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 81 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 81 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 86 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 83 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 79 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 77 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(inout), target | coef, | ||
| type(user_t), intent(in), target | user | ||
| ) |
Definition at line 75 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 89 of file source_term_handler.f90.
Definition at line 69 of file source_term_handler.f90.
| type(field_list_t) source_term_handler::source_term_handler_t::rhs_fields |
Definition at line 67 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 65 of file source_term_handler.f90.
Definition at line 71 of file source_term_handler.f90.