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

A source term wrapping the user source term routine. Stores fields that are passed to the user routine so tha the user routine never touches the actual RHS fields directly. More...

Inheritance diagram for user_source_term::user_source_term_t:
Collaboration diagram for user_source_term::user_source_term_t:

Public Member Functions

procedure, pass(thisinit (this, json, fields, coef, variable_name)
 Constructor from JSON (will throw!).
 
procedure, pass(thisinit_from_components (this, fields, coef, user_proc, scheme_name)
 Constructor from components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_ (this, time)
 Computes the source term and adds the result to fields.
 
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

character(len=:), allocatable scheme_name
 The name of the scheme that owns this source term.
 
type(dofmap_t), pointer dof
 Pointer to the dofmap of the right-hand-side fields.
 
type(field_list_tuser_fields
 Field list passed to the user source term routine. The values are then added to thisfields, i.e. the actual RHS.
 
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.
 

Static Public Attributes

procedure(user_source_term_intf), pointer, nopass compute_user_ => null()
 Compute the source term for the entire boundary.
 

Detailed Description

Warning
The user source term does not support init from JSON and should instead be directly initialized from components.

Definition at line 58 of file user_source_term.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(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_() [2/2]

procedure, pass(this) user_source_term::user_source_term_t::compute_ ( class(user_source_term_t), intent(inout this,
type(time_state_t), intent(in time 
)
Parameters
timeThe time state.

Definition at line 78 of file user_source_term.f90.

◆ free() [1/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() [2/2]

procedure, pass(this) user_source_term::user_source_term_t::free ( class(user_source_term_t), intent(inout this)

Definition at line 76 of file user_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(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() [2/2]

procedure, pass(this) user_source_term::user_source_term_t::init ( class(user_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 
)

This will throw, as the user source term should be initialized directly from components.

Definition at line 71 of file user_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) user_source_term::user_source_term_t::init_from_components ( class(user_source_term_t), intent(inout this,
type(field_list_t), intent(in), target  fields,
type(coef_t), intent(in), target  coef,
procedure(user_source_term_intf user_proc,
character(len=*), intent(in scheme_name 
)
Parameters
fieldsA list of 3 fields for adding the source values.
coefThe SEM coeffs.
user_procThe procedure user procedure to compute the source term.
scheme_nameThe name of the scheme that owns this source term.

Definition at line 73 of file user_source_term.f90.

Member Data Documentation

◆ coef

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

Definition at line 48 of file source_term.f90.

◆ compute_user_

procedure(user_source_term_intf), pointer, nopass user_source_term::user_source_term_t::compute_user_ => null()
static

Definition at line 67 of file user_source_term.f90.

◆ dof

type(dofmap_t), pointer user_source_term::user_source_term_t::dof

Definition at line 62 of file user_source_term.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.

◆ fields

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

Definition at line 46 of file source_term.f90.

◆ scheme_name

character(len=:), allocatable user_source_term::user_source_term_t::scheme_name

Definition at line 60 of file user_source_term.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.

◆ user_fields

type(field_list_t) user_source_term::user_source_term_t::user_fields

Definition at line 65 of file user_source_term.f90.


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