Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
boussinesq_source_term::boussinesq_source_term_t Type Referenceabstract

Bouyancy source term accroding to the Boussinesq approximation. More...

Inheritance diagram for boussinesq_source_term::boussinesq_source_term_t:
Collaboration diagram for boussinesq_source_term::boussinesq_source_term_t:

Public Member Functions

procedure, pass(thisinit (this, json, fields, coef)
 The common constructor using a JSON object.
 
procedure, pass(thisinit_from_compenents (this, fields, scalar_name, ref_value, g, beta, coef, start_time, end_time)
 The constructor from type components.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_ (this, t, tstep)
 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, t, tstep)
 Executes compute_ based on time conditions.
 
procedure(source_term_init), deferred, pass init (this, json, fields, coef)
 The common constructor using a JSON object.
 
procedure(source_term_free), deferred, pass free (this)
 Destructor.
 
procedure(source_term_compute), deferred, pass compute_ (this, t, tstep)
 Computes the source term and adds the result to fields.
 

Public Attributes

type(field_t), pointer s => null()
 The scalar field used to drive the source term, typically temperature.
 
real(kind=rp) ref_value = 0
 The reference value of the scalar field.
 
real(kind=rp), dimension(3) g
 Gravity vector.
 
real(kind=rp) beta
 Thermal expantion coefficient.
 
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

Called "boussinesq" in the JSON. Controlled by the following parameters:

  • "scalar_field": The name of the scalar that drives the source term, defaults to "s".
  • "ref_value": The reference value of the scalar.
  • "g": The gravity vector.
  • "beta": The the thermal expansion coefficeint, defaults to 1/ref_value.

Definition at line 59 of file boussinesq_source_term.f90.

Member Function/Subroutine Documentation

◆ compute()

procedure, pass(this) source_term::source_term_t::compute ( class(source_term_t), intent(inout this,
real(kind=rp), intent(in t,
integer, intent(in tstep 
)
inherited
Parameters
tTime value.
tstepCurrent time step.

Definition at line 58 of file source_term.f90.

◆ compute_() [1/2]

procedure, pass(this) boussinesq_source_term::boussinesq_source_term_t::compute_ ( class(boussinesq_source_term_t), intent(inout this,
real(kind=rp), intent(in t,
integer, intent(in tstep 
)
Parameters
tThe time value.
tstepThe current time-step.

Definition at line 77 of file boussinesq_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,
real(kind=rp), intent(in t,
integer, intent(in tstep 
)
pure virtualinherited

Definition at line 64 of file source_term.f90.

◆ free() [1/2]

procedure, pass(this) boussinesq_source_term::boussinesq_source_term_t::free ( class(boussinesq_source_term_t), intent(inout this)

Definition at line 75 of file boussinesq_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 62 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 56 of file source_term.f90.

◆ init() [1/2]

procedure, pass(this) boussinesq_source_term::boussinesq_source_term_t::init ( class(boussinesq_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 
)
Parameters
jsonThe JSON object for the source.
fieldsA list of fields for adding the source values.
coefThe SEM coeffs.

Definition at line 70 of file boussinesq_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 
)
pure virtualinherited

Definition at line 60 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
jsonJSON object initializing the source term.
fieldsThe list of fields updated by the source term.
coefThe SEM coefficients. Constructor for the source_term_t (base) type.
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 54 of file source_term.f90.

◆ init_from_compenents()

procedure, pass(this) boussinesq_source_term::boussinesq_source_term_t::init_from_compenents ( class(boussinesq_source_term_t), intent(inout this,
class(field_list_t), intent(in), target  fields,
character(len=*), intent(in scalar_name,
real(kind=rp), intent(in ref_value,
real(kind=rp), dimension(3), intent(in g,
real(kind=rp), intent(in beta,
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.
scalar_nameThe name of the scalar field driving the source.
ref_valueThe reference value of the scalar field.
gThe gravity vector.
betaThe thermal expansion coefficient.
coefThe SEM coeffs.
start_timeWhen to start adding the source term.
end_timeWhen to stop adding the source term.

Definition at line 72 of file boussinesq_source_term.f90.

Member Data Documentation

◆ beta

real(kind=rp) boussinesq_source_term::boussinesq_source_term_t::beta

Definition at line 67 of file boussinesq_source_term.f90.

◆ coef

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

Definition at line 47 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 51 of file source_term.f90.

◆ fields

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

Definition at line 45 of file source_term.f90.

◆ g

real(kind=rp), dimension(3) boussinesq_source_term::boussinesq_source_term_t::g

Definition at line 65 of file boussinesq_source_term.f90.

◆ ref_value

real(kind=rp) boussinesq_source_term::boussinesq_source_term_t::ref_value = 0

Definition at line 63 of file boussinesq_source_term.f90.

◆ s

type(field_t), pointer boussinesq_source_term::boussinesq_source_term_t::s => null()

Definition at line 61 of file boussinesq_source_term.f90.

◆ start_time

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

Definition at line 49 of file source_term.f90.


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