Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
gradient_jump_penalty::gradient_jump_penalty_t Type Referenceabstract

Implements the gradient jump penalty. More...

Inheritance diagram for gradient_jump_penalty::gradient_jump_penalty_t:
Collaboration diagram for gradient_jump_penalty::gradient_jump_penalty_t:

Public Member Functions

procedure, pass(thisinit (this, json, fields, coef, variable_name)
 Constructor from JSON.
 
procedure, pass(thisinit_from_components (this, coef, fields, start_time, end_time, a, b, variable_name)
 Constructor from components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_single (this, s)
 Compute gradient jump penalty term.
 
procedure, pass(thiscompute_ (this, time)
 Perform gradient jump penalty term.
 
procedure, pass(thisinit_base (this, fields, coef, start_time, end_time)
 Constructor for the source_term_t (base) type.
 
procedure, pass(thisfree_base (this)
 Destructor for the source_term_t (base) type.
 
procedure, pass(thiscompute (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_ts_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_txh_gjp
 gather-scattering operation related variables
 
type(dofmap_tdm_gjp
 needed to init gs
 
type(gs_tgs_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_tfields
 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.
 

Detailed Description

Note
Reference DOI: 10.1016/j.cma.2021.114200

Definition at line 69 of file gradient_jump_penalty.f90.

Member Function/Subroutine Documentation

◆ compute()

procedure, pass(this) source_term::source_term_t::compute ( class(source_term_t), intent(inout this,
type(time_state_t), intent(in time 
)
inherited
Parameters
timeTime state.

Definition at line 59 of file source_term.f90.

◆ compute_() [1/2]

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 
)
Parameters
timeThe time state.

Definition at line 151 of file gradient_jump_penalty.f90.

◆ compute_() [2/2]

procedure(source_term_compute), deferred, pass source_term::source_term_t::compute_ ( class(source_term_t), intent(inout this,
type(time_state_t), intent(in time 
)
pure virtualinherited

Definition at line 65 of file source_term.f90.

◆ compute_single()

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 
)
Parameters
sQuantity of interest.

Definition at line 148 of file gradient_jump_penalty.f90.

◆ free() [1/2]

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.

◆ free() [2/2]

procedure(source_term_free), deferred, pass source_term::source_term_t::free ( class(source_term_t), intent(inout this)
pure virtualinherited

Definition at line 63 of file source_term.f90.

◆ free_base()

procedure, pass(this) source_term::source_term_t::free_base ( class(source_term_t), intent(inout this)
inherited

Definition at line 57 of file source_term.f90.

◆ init() [1/2]

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 
)
Parameters
jsonThe JSON object for the source.
fieldsA list of fields for adding the source values.
coefThe SEM coeffs.
a,bCoefficients to determine tau
variable_nameThe name of the variable for this source term.

Definition at line 141 of file gradient_jump_penalty.f90.

◆ init() [2/2]

procedure(source_term_init), deferred, pass source_term::source_term_t::init ( class(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 
)
pure virtualinherited

Definition at line 61 of file source_term.f90.

◆ init_base()

procedure, pass(this) source_term::source_term_t::init_base ( class(source_term_t), intent(inout this,
type(field_list_t fields,
type(coef_t), intent(in), target  coef,
real(kind=rp), intent(in start_time,
real(kind=rp), intent(in end_time 
)
inherited
Parameters
fieldsA list of pointers to fields to be updated by the source term.
coefSEM coefs.
start_timeWhen to start adding the source term.
end_timeWhen to stop adding the source term.

Definition at line 55 of file source_term.f90.

◆ init_from_components()

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 
)
Parameters
fieldsA list of fields for adding the source values.
coefThe SEM coeffs.
a,bCoefficients to determine tau
start_timeWhen to start adding the source term.
end_timeWhen to stop adding the source term.
variable_nameThe name of the variable for this source term.

Definition at line 143 of file gradient_jump_penalty.f90.

Member Data Documentation

◆ absvolflux

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::absvolflux

Definition at line 112 of file gradient_jump_penalty.f90.

◆ absvolflux_d

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.

◆ coef

type(coef_t), pointer source_term::source_term_t::coef => null()
inherited

Definition at line 48 of file source_term.f90.

◆ dm_gjp

type(dofmap_t) gradient_jump_penalty::gradient_jump_penalty_t::dm_gjp

Definition at line 132 of file gradient_jump_penalty.f90.

◆ dphidxi

real(kind=rp), dimension(:, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::dphidxi

Definition at line 128 of file gradient_jump_penalty.f90.

◆ dphidxi_d

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.

◆ end_time

real(kind=rp) source_term::source_term_t::end_time = huge(0.0_rp)
inherited

Definition at line 52 of file source_term.f90.

◆ facet_factor

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::facet_factor

Definition at line 120 of file gradient_jump_penalty.f90.

◆ facet_factor_d

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.

◆ fields

type(field_list_t) source_term::source_term_t::fields
inherited

Definition at line 46 of file source_term.f90.

◆ flux1

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::flux1

Definition at line 101 of file gradient_jump_penalty.f90.

◆ flux1_d

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.

◆ flux2

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::flux2

Definition at line 101 of file gradient_jump_penalty.f90.

◆ flux2_d

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.

◆ flux3

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::flux3

Definition at line 101 of file gradient_jump_penalty.f90.

◆ flux3_d

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.

◆ g

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::g

Definition at line 98 of file gradient_jump_penalty.f90.

◆ g_d

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.

◆ grad1

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::grad1

Definition at line 92 of file gradient_jump_penalty.f90.

◆ grad1_d

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.

◆ grad2

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::grad2

Definition at line 92 of file gradient_jump_penalty.f90.

◆ grad2_d

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.

◆ grad3

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::grad3

Definition at line 92 of file gradient_jump_penalty.f90.

◆ grad3_d

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.

◆ gs_gjp

type(gs_t) gradient_jump_penalty::gradient_jump_penalty_t::gs_gjp

Definition at line 133 of file gradient_jump_penalty.f90.

◆ h2

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::h2

Definition at line 126 of file gradient_jump_penalty.f90.

◆ lx

integer gradient_jump_penalty::gradient_jump_penalty_t::lx

Definition at line 84 of file gradient_jump_penalty.f90.

◆ n

integer gradient_jump_penalty::gradient_jump_penalty_t::n

Definition at line 135 of file gradient_jump_penalty.f90.

◆ n1

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n1

Definition at line 115 of file gradient_jump_penalty.f90.

◆ n1_d

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.

◆ n2

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n2

Definition at line 115 of file gradient_jump_penalty.f90.

◆ n2_d

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.

◆ n3

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n3

Definition at line 115 of file gradient_jump_penalty.f90.

◆ n3_d

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.

◆ n_facet

integer, dimension(:), allocatable gradient_jump_penalty::gradient_jump_penalty_t::n_facet

Definition at line 123 of file gradient_jump_penalty.f90.

◆ n_facet_max

integer gradient_jump_penalty::gradient_jump_penalty_t::n_facet_max

Definition at line 124 of file gradient_jump_penalty.f90.

◆ n_large

integer gradient_jump_penalty::gradient_jump_penalty_t::n_large

Definition at line 137 of file gradient_jump_penalty.f90.

◆ p

integer gradient_jump_penalty::gradient_jump_penalty_t::p

Definition at line 82 of file gradient_jump_penalty.f90.

◆ penalty

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::penalty

Definition at line 86 of file gradient_jump_penalty.f90.

◆ penalty_d

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.

◆ penalty_facet

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::penalty_facet

Definition at line 89 of file gradient_jump_penalty.f90.

◆ penalty_facet_d

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.

◆ s_fields

type(field_list_t) gradient_jump_penalty::gradient_jump_penalty_t::s_fields

Definition at line 71 of file gradient_jump_penalty.f90.

◆ start_time

real(kind=rp) source_term::source_term_t::start_time = 0.0_rp
inherited

Definition at line 50 of file source_term.f90.

◆ tau

real(kind=rp) gradient_jump_penalty::gradient_jump_penalty_t::tau

Definition at line 80 of file gradient_jump_penalty.f90.

◆ u

type(field_t), pointer gradient_jump_penalty::gradient_jump_penalty_t::u

Definition at line 73 of file gradient_jump_penalty.f90.

◆ v

type(field_t), pointer gradient_jump_penalty::gradient_jump_penalty_t::v

Definition at line 75 of file gradient_jump_penalty.f90.

◆ volflux1

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::volflux1

Definition at line 106 of file gradient_jump_penalty.f90.

◆ volflux1_d

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.

◆ volflux2

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::volflux2

Definition at line 106 of file gradient_jump_penalty.f90.

◆ volflux2_d

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.

◆ volflux3

real(kind=rp), dimension(:, :, :, :), allocatable gradient_jump_penalty::gradient_jump_penalty_t::volflux3

Definition at line 106 of file gradient_jump_penalty.f90.

◆ volflux3_d

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.

◆ w

type(field_t), pointer gradient_jump_penalty::gradient_jump_penalty_t::w

Definition at line 77 of file gradient_jump_penalty.f90.

◆ xh_gjp

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.


The documentation for this type was generated from the following file: