| 
    Neko 0.9.1
    
   A portable framework for high-order spectral element flow simulations 
   | 
 
A source-term for the fluid, with procedure pointers pointing to the actual implementation in the user file. More...


Public Member Functions | |
| procedure, pass(this) | init (this, json, fields, coef) | 
| Constructor from JSON (will throw!).   | |
| procedure, pass(this) | init_from_components (this, fields, coef, source_term_type, eval_vector, eval_pointwise) | 
| Constructor from components.   | |
| procedure, pass(this) | free (this) | 
| Destructor.   | |
| procedure, pass(this) | compute_ (this, t, tstep) | 
Computes the source term and adds the result to fields.   | |
| procedure, pass(this) | init_base (this, fields, coef, start_time, end_time) | 
| Constructor for the source_term_t (base) type.   | |
| procedure, pass(this) | free_base (this) | 
| Destructor for the source_term_t (base) type.   | |
| procedure, pass(this) | compute (this, t, tstep) | 
Executes compute_ based on time conditions.   | |
| procedure(source_term_init), deferred, pass | init (this, json, fields, coef) | 
| The common constructor using a JSON object.   | |
| procedure(source_term_free), deferred, pass | free (this) | 
| Destructor.   | |
| procedure(source_term_compute), deferred, pass | compute_ (this, t, tstep) | 
Computes the source term and adds the result to fields.   | |
Public Attributes | |
| type(dofmap_t), pointer | dm | 
| Pointer to the dofmap of the right-hand-side fields.   | |
| real(kind=rp), dimension(:, :, :, :), allocatable | u | 
| x-component of source term.   | |
| real(kind=rp), dimension(:, :, :, :), allocatable | v | 
| y-component of source term.   | |
| real(kind=rp), dimension(:, :, :, :), allocatable | w | 
| z-component of source term.   | |
| type(c_ptr) | u_d = C_NULL_PTR | 
Device pointer for u.   | |
| type(c_ptr) | v_d = C_NULL_PTR | 
Device pointer for v.   | |
| type(c_ptr) | w_d = C_NULL_PTR | 
Device pointer for w.   | |
| type(field_list_t) | fields | 
| The fields to be updated with the source term values.   | |
| type(coef_t), pointer | coef => null() | 
| Coefficients for the SEM.   | |
| real(kind=rp) | start_time = 0.0_rp | 
| Start time for adding the source term.   | |
| real(kind=rp) | end_time = huge(0.0_rp) | 
| End time for adding the source term.   | |
Static Public Attributes | |
| procedure(fluid_source_compute_pointwise), pointer, nopass | compute_pw_ => null() | 
| Compute the source term for a single point.   | |
| procedure(fluid_source_compute_vector), pointer, nopass | compute_vector_ => null() | 
| Compute the source term for the entire boundary.   | |
The user source term can be applied either pointiwse or acting on the whole array in a single call, which is referred to as "vector" application.
Definition at line 60 of file fluid_user_source_term.f90.
      
  | 
  inherited | 
| t | Time value. | 
| tstep | Current time step. | 
Definition at line 58 of file source_term.f90.
| procedure, pass(this) fluid_user_source_term::fluid_user_source_term_t::compute_ | ( | class(fluid_user_source_term_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 91 of file fluid_user_source_term.f90.
      
  | 
  pure virtualinherited | 
Definition at line 64 of file source_term.f90.
| procedure, pass(this) fluid_user_source_term::fluid_user_source_term_t::free | ( | class(fluid_user_source_term_t), intent(inout) | this | ) | 
Definition at line 89 of file fluid_user_source_term.f90.
      
  | 
  pure virtualinherited | 
Definition at line 62 of file source_term.f90.
      
  | 
  inherited | 
Definition at line 56 of file source_term.f90.
| procedure, pass(this) fluid_user_source_term::fluid_user_source_term_t::init | ( | class(fluid_user_source_term_t), intent(inout) | this, | 
| type(json_file), intent(inout) | json, | ||
| type(field_list_t), intent(inout), target | fields, | ||
| type(coef_t), intent(inout), target | coef | ||
| ) | 
This will throw, as the user source term should be initialized directly from components.
Definition at line 84 of file fluid_user_source_term.f90.
      
  | 
  pure virtualinherited | 
Definition at line 60 of file source_term.f90.
      
  | 
  inherited | 
| json | JSON object initializing the source term. | 
| fields | The list of fields updated by the source term. | 
| coef | The SEM coefficients. Constructor for the source_term_t (base) type.  | 
| fields | A list of pointers to fields to be updated by the source term. | 
| coef | SEM coefs. | 
| start_time | When to start adding the source term. | 
| end_time | When to stop adding the source term. | 
Definition at line 54 of file source_term.f90.
| procedure, pass(this) fluid_user_source_term::fluid_user_source_term_t::init_from_components | ( | class(fluid_user_source_term_t), intent(inout) | this, | 
| type(field_list_t), intent(inout), target | fields, | ||
| type(coef_t), intent(inout), target | coef, | ||
| character(len=*) | source_term_type, | ||
| procedure(fluid_source_compute_vector), optional | eval_vector, | ||
| procedure(fluid_source_compute_pointwise), optional | eval_pointwise | ||
| ) | 
| fields | A list of 3 fields for adding the source values. | 
| coef | The SEM coeffs. | 
| sourc_termtype | The type of the user source term, "user_vector" or "user_pointwise". | 
| eval_vector | The procedure to vector-compute the source term. | 
| eval_pointwise | The procedure to pointwise-compute the source term. | 
Definition at line 86 of file fluid_user_source_term.f90.
Definition at line 47 of file source_term.f90.
      
  | 
  static | 
Definition at line 77 of file fluid_user_source_term.f90.
      
  | 
  static | 
Definition at line 80 of file fluid_user_source_term.f90.
Definition at line 62 of file fluid_user_source_term.f90.
Definition at line 51 of file source_term.f90.
      
  | 
  inherited | 
Definition at line 45 of file source_term.f90.
Definition at line 49 of file source_term.f90.
| real(kind=rp), dimension(:, :, :, :), allocatable fluid_user_source_term::fluid_user_source_term_t::u | 
Definition at line 64 of file fluid_user_source_term.f90.
| type(c_ptr) fluid_user_source_term::fluid_user_source_term_t::u_d = C_NULL_PTR | 
Definition at line 71 of file fluid_user_source_term.f90.
| real(kind=rp), dimension(:, :, :, :), allocatable fluid_user_source_term::fluid_user_source_term_t::v | 
Definition at line 66 of file fluid_user_source_term.f90.
| type(c_ptr) fluid_user_source_term::fluid_user_source_term_t::v_d = C_NULL_PTR | 
Definition at line 73 of file fluid_user_source_term.f90.
| real(kind=rp), dimension(:, :, :, :), allocatable fluid_user_source_term::fluid_user_source_term_t::w | 
Definition at line 68 of file fluid_user_source_term.f90.
| type(c_ptr) fluid_user_source_term::fluid_user_source_term_t::w_d = C_NULL_PTR | 
Definition at line 75 of file fluid_user_source_term.f90.