| 
    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.