|
Neko 1.99.3
A portable framework for high-order spectral element flow simulations
|
High-pass filter relaxation source term. More...


Public Member Functions | |
| procedure, pass(this) | init (this, json, fields, coef, variable_name) |
| The common constructor using a JSON object. | |
| procedure, pass(this) | init_from_components (this, fields, coef, filter_weight, filter_modes, start_time, end_time, field_name) |
| The constructor from type components. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | compute_ (this, time) |
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, time) |
Executes compute_ based on time conditions. | |
| procedure(source_term_init), deferred, pass | init (this, json, fields, coef, variable_name) |
| The common constructor using a JSON object. | |
| procedure(source_term_free), deferred, pass | free (this) |
| Destructor. | |
| procedure(source_term_compute), deferred, pass | compute_ (this, time) |
Computes the source term and adds the result to fields. | |
Public Attributes | |
| integer | filter_modes = 0 |
| Number of high modes affected by the filter. | |
| real(kind=rp) | chi = 0.0_rp |
| Damping coefficient, stored as a non-positive value. | |
| type(elementwise_filter_t) | filter |
| Low-pass elementwise filter. | |
| type(field_list_t) | source_fields |
| Fields to filter before adding to the source RHS. | |
| 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. | |
The low-pass filter is built from a one-dimensional modal transfer function. For filter_modes = \(k_f\) and \(n = lx\), let \(k_0 = n - k_f\). The modal transfer function is
\[ \sigma_k = \begin{cases} 1, & k \leq k_0,\\ 1 - \left(\frac{k-k_0}{k_f}\right)^2, & k_0 < k \leq n. \end{cases} \]
The source term adds \(\chi (I - F)\phi\), where \(\chi = -|\texttt{filter_weight}|\).
Definition at line 65 of file hpfrt_source_term.f90.
|
inherited |
| time | Time state. |
Definition at line 59 of file source_term.f90.
| procedure, pass(this) hpfrt_source_term::hpfrt_source_term_t::compute_ | ( | class(hpfrt_source_term_t), intent(inout) | this, |
| type(time_state_t), intent(in) | time | ||
| ) |
| time | The time state. |
Definition at line 83 of file hpfrt_source_term.f90.
|
pure virtualinherited |
Definition at line 65 of file source_term.f90.
| procedure, pass(this) hpfrt_source_term::hpfrt_source_term_t::free | ( | class(hpfrt_source_term_t), intent(inout) | this | ) |
Definition at line 81 of file hpfrt_source_term.f90.
|
pure virtualinherited |
Definition at line 63 of file source_term.f90.
|
inherited |
Definition at line 57 of file source_term.f90.
| procedure, pass(this) hpfrt_source_term::hpfrt_source_term_t::init | ( | class(hpfrt_source_term_t), intent(inout) | this, |
| type(json_file), intent(inout) | json, | ||
| type(field_list_t), intent(in), target | fields, | ||
| type(coef_t), intent(in), target | coef, | ||
| character(len=*), intent(in) | variable_name | ||
| ) |
| json | The JSON object for the source. |
| fields | A list of fields for adding the source values. |
| coef | The SEM coeffs. |
| variable_name | The name of the variable where the source term acts. |
Definition at line 76 of file hpfrt_source_term.f90.
|
pure virtualinherited |
Definition at line 61 of file source_term.f90.
|
inherited |
| 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 55 of file source_term.f90.
| procedure, pass(this) hpfrt_source_term::hpfrt_source_term_t::init_from_components | ( | class(hpfrt_source_term_t), intent(inout) | this, |
| class(field_list_t), intent(in), target | fields, | ||
| type(coef_t), intent(in), target | coef, | ||
| real(kind=rp), intent(in) | filter_weight, | ||
| integer, intent(in) | filter_modes, | ||
| real(kind=rp), intent(in) | start_time, | ||
| real(kind=rp), intent(in) | end_time, | ||
| character(len=*), intent(in) | field_name | ||
| ) |
| fields | A list of fields for adding the source values. |
| coef | The SEM coeffs. |
| filter_weight | The positive damping coefficient magnitude. |
| filter_modes | Number of high modes affected by the filter. |
| start_time | When to start adding the source term. |
| end_time | When to stop adding the source term. |
| field_name | Name of the scalar field for scalar source terms. |
Definition at line 78 of file hpfrt_source_term.f90.
Definition at line 69 of file hpfrt_source_term.f90.
Definition at line 48 of file source_term.f90.
Definition at line 52 of file source_term.f90.
|
inherited |
Definition at line 46 of file source_term.f90.
| type(elementwise_filter_t) hpfrt_source_term::hpfrt_source_term_t::filter |
Definition at line 71 of file hpfrt_source_term.f90.
| integer hpfrt_source_term::hpfrt_source_term_t::filter_modes = 0 |
Definition at line 67 of file hpfrt_source_term.f90.
| type(field_list_t) hpfrt_source_term::hpfrt_source_term_t::source_fields |
Definition at line 73 of file hpfrt_source_term.f90.
Definition at line 50 of file source_term.f90.