Neko 1.99.2
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
centrifugal_source_term::centrifugal_source_term_t Type Referenceabstract

This source term adds the centrifugal force. More...

Inheritance diagram for centrifugal_source_term::centrifugal_source_term_t:
Collaboration diagram for centrifugal_source_term::centrifugal_source_term_t:

Public Member Functions

procedure, pass(thisinit (this, json, fields, coef, variable_name)
 The common constructor using a JSON object.
 
procedure, pass(thisinit_from_compenents (this, fields, omega, ref_point, coef, start_time, end_time)
 The costrucructor from type 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

real(kind=rp), dimension(3) omega
 The rotation vector.
 
real(kind=rp), dimension(3) ref_point
 The reference point.
 
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

This forcing can be used to perform simulation in a rotating reference frame and adds a source term in the form \( - \Omega \times (\Omega \times r) \), where \( \Omega \) is the rotation vector and \( r \) is the position relative to the reference point, which is any point lying on the rotation axis. To perform simulation in the rotating reference frame one needs to use Coriolis source term as well, taking care of a consistent definition of \( \Omega \).

Definition at line 62 of file centrifugal_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, pass(this) centrifugal_source_term::centrifugal_source_term_t::compute_ ( class(centrifugal_source_term_t), intent(inout this,
type(time_state_t), intent(in time 
)
Parameters
timeThe time state.

Definition at line 76 of file centrifugal_source_term.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.

◆ free() [1/2]

procedure, pass(this) centrifugal_source_term::centrifugal_source_term_t::free ( class(centrifugal_source_term_t), intent(inout this)

Definition at line 74 of file centrifugal_source_term.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) centrifugal_source_term::centrifugal_source_term_t::init ( class(centrifugal_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 
)
Parameters
jsonThe JSON object for the source.
fieldsA list of fields for adding the source values.
coefThe SEM coeffs.
variable_nameThe name of the variable for this source term.

Definition at line 69 of file centrifugal_source_term.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_compenents()

procedure, pass(this) centrifugal_source_term::centrifugal_source_term_t::init_from_compenents ( class(centrifugal_source_term_t), intent(inout this,
class(field_list_t), intent(in), target  fields,
real(kind=rp), dimension(3), intent(in omega,
real(kind=rp), dimension(3), intent(in ref_point,
type(coef_t coef,
real(kind=rp), intent(in start_time,
real(kind=rp), intent(in end_time 
)
Parameters
fieldsA list of fields for adding the source values.
omegaThe rotation vector.
ref_pointThe reference point.
coefThe SEM coeffs.
start_timeWhen to start adding the source term.
end_timeWhen to stop adding the source term.

Definition at line 71 of file centrifugal_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.

◆ 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.

◆ omega

real(kind=rp), dimension(3) centrifugal_source_term::centrifugal_source_term_t::omega

Definition at line 64 of file centrifugal_source_term.f90.

◆ ref_point

real(kind=rp), dimension(3) centrifugal_source_term::centrifugal_source_term_t::ref_point

Definition at line 66 of file centrifugal_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.


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