Neko 1.99.1
A portable framework for high-order spectral element flow simulations
|
Implements the gradient jump penalty. More...
Public Member Functions | |
procedure, pass(this) | init (this, json, fields, coef, variable_name) |
Constructor from JSON. | |
procedure, pass(this) | init_from_components (this, coef, fields, start_time, end_time, a, b, variable_name) |
Constructor from components. | |
procedure, pass(this) | free (this) |
Destructor. | |
procedure, pass(this) | compute_single (this, s) |
Compute gradient jump penalty term. | |
procedure, pass(this) | compute_ (this, time) |
Perform gradient jump penalty term. | |
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 | |
type(field_list_t) | s_fields |
The solution fields for which to apply the penalty. | |
type(field_t), pointer | u |
The x component of velocity. | |
type(field_t), pointer | v |
The y component of velocity. | |
type(field_t), pointer | w |
The z component of velocity. | |
real(kind=rp) | tau |
Coefficient of the penalty. | |
integer | p |
Polynomial order. | |
integer | lx |
Collocation point per dimension (p + 1) | |
real(kind=rp), dimension(:, :, :, :), allocatable | penalty |
Penalty terms. | |
type(c_ptr) | penalty_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | penalty_facet |
work array storing integrant of the penalty | |
type(c_ptr) | penalty_facet_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | grad1 |
Gradient of the quatity of interest. | |
real(kind=rp), dimension(:, :, :, :), allocatable | grad2 |
real(kind=rp), dimension(:, :, :, :), allocatable | grad3 |
type(c_ptr) | grad1_d = C_NULL_PTR |
type(c_ptr) | grad2_d = C_NULL_PTR |
type(c_ptr) | grad3_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | g |
Gradient jump on the elementary interface (zero inside each element) | |
type(c_ptr) | g_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | flux1 |
3 parts of the flux of the quantity | |
real(kind=rp), dimension(:, :, :, :), allocatable | flux2 |
real(kind=rp), dimension(:, :, :, :), allocatable | flux3 |
type(c_ptr) | flux1_d = C_NULL_PTR |
type(c_ptr) | flux2_d = C_NULL_PTR |
type(c_ptr) | flux3_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | volflux1 |
3 parts of the flux of the volumetric flow | |
real(kind=rp), dimension(:, :, :, :), allocatable | volflux2 |
real(kind=rp), dimension(:, :, :, :), allocatable | volflux3 |
type(c_ptr) | volflux1_d = C_NULL_PTR |
type(c_ptr) | volflux2_d = C_NULL_PTR |
type(c_ptr) | volflux3_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | absvolflux |
The absolute flux of the volumetric flow. | |
type(c_ptr) | absvolflux_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | n1 |
Expanded array of facet normal (zero inside each element) | |
real(kind=rp), dimension(:, :, :, :), allocatable | n2 |
real(kind=rp), dimension(:, :, :, :), allocatable | n3 |
type(c_ptr) | n1_d = C_NULL_PTR |
type(c_ptr) | n2_d = C_NULL_PTR |
type(c_ptr) | n3_d = C_NULL_PTR |
real(kind=rp), dimension(:, :, :, :), allocatable | facet_factor |
Facet factor: quantities in the integrant fix with time stepping. | |
type(c_ptr) | facet_factor_d = C_NULL_PTR |
integer, dimension(:), allocatable | n_facet |
Number of facet in elements and its maximum. | |
integer | n_facet_max |
real(kind=rp), dimension(:, :, :, :), allocatable | h2 |
Length scale for element regarding a facet. | |
real(kind=rp), dimension(:, :), allocatable | dphidxi |
The first derivative of polynomial at two ends of the interval. | |
type(c_ptr) | dphidxi_d = C_NULL_PTR |
type(space_t) | xh_gjp |
gather-scattering operation related variables | |
type(dofmap_t) | dm_gjp |
needed to init gs | |
type(gs_t) | gs_gjp |
integer | n |
Size of fields of size lx ** 3 * nelv. | |
integer | n_large |
Size of fields of size lx ** 3 * nelv. | |
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. | |
Definition at line 69 of file gradient_jump_penalty.f90.
|
inherited |
time | Time state. |
Definition at line 59 of file source_term.f90.
procedure, pass(this) gradient_jump_penalty::gradient_jump_penalty_t::compute_ | ( | class(gradient_jump_penalty_t), intent(inout) | this, |
type(time_state_t), intent(in) | time | ||
) |
time | The time state. |
Definition at line 151 of file gradient_jump_penalty.f90.
|
pure virtualinherited |
Definition at line 65 of file source_term.f90.
procedure, pass(this) gradient_jump_penalty::gradient_jump_penalty_t::compute_single | ( | class(gradient_jump_penalty_t), intent(inout) | this, |
type(field_t), intent(in) | s | ||
) |
s | Quantity of interest. |
Definition at line 148 of file gradient_jump_penalty.f90.
procedure, pass(this) gradient_jump_penalty::gradient_jump_penalty_t::free | ( | class(gradient_jump_penalty_t), intent(inout) | this | ) |
Definition at line 146 of file gradient_jump_penalty.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) gradient_jump_penalty::gradient_jump_penalty_t::init | ( | class(gradient_jump_penalty_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. |
a,b | Coefficients to determine tau |
variable_name | The name of the variable for this source term. |
Definition at line 141 of file gradient_jump_penalty.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) gradient_jump_penalty::gradient_jump_penalty_t::init_from_components | ( | class(gradient_jump_penalty_t), intent(inout) | this, |
type(coef_t), intent(in), target | coef, | ||
type(field_list_t), intent(in), target | fields, | ||
real(kind=rp), intent(in) | start_time, | ||
real(kind=rp), intent(in) | end_time, | ||
real(kind=rp), intent(in) | a, | ||
real(kind=rp), intent(in) | b, | ||
character(len=*), intent(in) | variable_name | ||
) |
fields | A list of fields for adding the source values. |
coef | The SEM coeffs. |
a,b | Coefficients to determine tau |
start_time | When to start adding the source term. |
end_time | When to stop adding the source term. |
variable_name | The name of the variable for this source term. |
Definition at line 143 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::absvolflux |
Definition at line 112 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::absvolflux_d = C_NULL_PTR |
Definition at line 113 of file gradient_jump_penalty.f90.
Definition at line 48 of file source_term.f90.
type(dofmap_t) gradient_jump_penalty::gradient_jump_penalty_t::dm_gjp |
Definition at line 132 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::dphidxi |
Definition at line 128 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::dphidxi_d = C_NULL_PTR |
Definition at line 129 of file gradient_jump_penalty.f90.
Definition at line 52 of file source_term.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::facet_factor |
Definition at line 120 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::facet_factor_d = C_NULL_PTR |
Definition at line 121 of file gradient_jump_penalty.f90.
|
inherited |
Definition at line 46 of file source_term.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::flux1 |
Definition at line 101 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::flux1_d = C_NULL_PTR |
Definition at line 102 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::flux2 |
Definition at line 101 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::flux2_d = C_NULL_PTR |
Definition at line 103 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::flux3 |
Definition at line 101 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::flux3_d = C_NULL_PTR |
Definition at line 104 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::g |
Definition at line 98 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::g_d = C_NULL_PTR |
Definition at line 99 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::grad1 |
Definition at line 92 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::grad1_d = C_NULL_PTR |
Definition at line 94 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::grad2 |
Definition at line 92 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::grad2_d = C_NULL_PTR |
Definition at line 95 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::grad3 |
Definition at line 92 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::grad3_d = C_NULL_PTR |
Definition at line 96 of file gradient_jump_penalty.f90.
type(gs_t) gradient_jump_penalty::gradient_jump_penalty_t::gs_gjp |
Definition at line 133 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::h2 |
Definition at line 126 of file gradient_jump_penalty.f90.
integer gradient_jump_penalty::gradient_jump_penalty_t::lx |
Definition at line 84 of file gradient_jump_penalty.f90.
integer gradient_jump_penalty::gradient_jump_penalty_t::n |
Definition at line 135 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n1 |
Definition at line 115 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::n1_d = C_NULL_PTR |
Definition at line 116 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n2 |
Definition at line 115 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::n2_d = C_NULL_PTR |
Definition at line 117 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n3 |
Definition at line 115 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::n3_d = C_NULL_PTR |
Definition at line 118 of file gradient_jump_penalty.f90.
integer, dimension(:), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n_facet |
Definition at line 123 of file gradient_jump_penalty.f90.
integer gradient_jump_penalty::gradient_jump_penalty_t::n_facet_max |
Definition at line 124 of file gradient_jump_penalty.f90.
integer gradient_jump_penalty::gradient_jump_penalty_t::n_large |
Definition at line 137 of file gradient_jump_penalty.f90.
integer gradient_jump_penalty::gradient_jump_penalty_t::p |
Definition at line 82 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::penalty |
Definition at line 86 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::penalty_d = C_NULL_PTR |
Definition at line 87 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::penalty_facet |
Definition at line 89 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::penalty_facet_d = C_NULL_PTR |
Definition at line 90 of file gradient_jump_penalty.f90.
type(field_list_t) gradient_jump_penalty::gradient_jump_penalty_t::s_fields |
Definition at line 71 of file gradient_jump_penalty.f90.
Definition at line 50 of file source_term.f90.
Definition at line 80 of file gradient_jump_penalty.f90.
Definition at line 73 of file gradient_jump_penalty.f90.
Definition at line 75 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::volflux1 |
Definition at line 106 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::volflux1_d = C_NULL_PTR |
Definition at line 108 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::volflux2 |
Definition at line 106 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::volflux2_d = C_NULL_PTR |
Definition at line 109 of file gradient_jump_penalty.f90.
real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::volflux3 |
Definition at line 106 of file gradient_jump_penalty.f90.
type(c_ptr) gradient_jump_penalty::gradient_jump_penalty_t::volflux3_d = C_NULL_PTR |
Definition at line 110 of file gradient_jump_penalty.f90.
Definition at line 77 of file gradient_jump_penalty.f90.
type(space_t) gradient_jump_penalty::gradient_jump_penalty_t::xh_gjp |
needed to init gs
Definition at line 131 of file gradient_jump_penalty.f90.