|
Neko 0.9.1
A portable framework for high-order spectral element flow simulations
|
A source-term for the scalar, 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 | s |
| The source term. | |
| type(c_ptr) | s_d = C_NULL_PTR |
Device pointer for s. | |
| 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(scalar_source_compute_pointwise), pointer, nopass | compute_pw_ => null() |
| Compute the source term for a single point. | |
| procedure(scalar_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 scalar_user_source_term.f90.
|
inherited |
| t | Time value. |
| tstep | Current time step. |
Definition at line 58 of file source_term.f90.
| procedure, pass(this) scalar_user_source_term::scalar_user_source_term_t::compute_ | ( | class(scalar_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 83 of file scalar_user_source_term.f90.
|
pure virtualinherited |
Definition at line 64 of file source_term.f90.
| procedure, pass(this) scalar_user_source_term::scalar_user_source_term_t::free | ( | class(scalar_user_source_term_t), intent(inout) | this | ) |
Definition at line 81 of file scalar_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) scalar_user_source_term::scalar_user_source_term_t::init | ( | class(scalar_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 76 of file scalar_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) scalar_user_source_term::scalar_user_source_term_t::init_from_components | ( | class(scalar_user_source_term_t), intent(inout) | this, |
| type(field_list_t), intent(inout), target | fields, | ||
| type(coef_t), intent(inout) | coef, | ||
| character(len=*) | source_term_type, | ||
| procedure(scalar_source_compute_vector), optional | eval_vector, | ||
| procedure(scalar_source_compute_pointwise), optional | eval_pointwise | ||
| ) |
| fields | A list with 1 field for adding the source values. |
| coef | The SEM coeffs. |
| sourc_term_type | 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 78 of file scalar_user_source_term.f90.
Definition at line 47 of file source_term.f90.
|
static |
Definition at line 69 of file scalar_user_source_term.f90.
|
static |
Definition at line 72 of file scalar_user_source_term.f90.
Definition at line 62 of file scalar_user_source_term.f90.
Definition at line 51 of file source_term.f90.
|
inherited |
Definition at line 45 of file source_term.f90.
| real(kind=rp), dimension(:, :, :, :), allocatable scalar_user_source_term::scalar_user_source_term_t::s |
Definition at line 64 of file scalar_user_source_term.f90.
| type(c_ptr) scalar_user_source_term::scalar_user_source_term_t::s_d = C_NULL_PTR |
Definition at line 67 of file scalar_user_source_term.f90.
Definition at line 49 of file source_term.f90.