Neko 1.99.2
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
sponge_source_term::sponge_source_term_t Type Referenceabstract
Inheritance diagram for sponge_source_term::sponge_source_term_t:
Collaboration diagram for sponge_source_term::sponge_source_term_t:

Public Member Functions

procedure, pass(thisinit (this, json, fields, coef, variable_name)
 Constructor from json.
 
procedure, pass(thisinit_constant (this, fields, coef, start_time, end_time, amplitudes, fringe_registry_name, bf_registry_pref, dump_fields, dump_fname, constant_values)
 Initialize a sponge with a constant baseflow.
 
procedure, pass(thisinit_user (this, fields, coef, start_time, end_time, amplitudes, fringe_registry_name, bf_registry_pref, dump_fields, dump_fname)
 Initialize a sponge with a baseflow imported from the initial condition.
 
procedure, pass(thisinit_field (this, fields, coef, start_time, end_time, amplitudes, fringe_registry_name, bf_registry_pref, dump_fields, dump_fname, file_name, interpolate, tolerance, mesh_file_name)
 Initialize a sponge with a baseflow imported from a field file.
 
procedure, pass(thisinit_common (this, fields, coef, start_time, end_time, amplitudes, fringe_registry_name, bf_registry_pref, dump_fields, dump_fname)
 Common constructor.
 
procedure, pass(thisfree (this)
 Destructor.
 
procedure, pass(thiscompute_ (this, time)
 Compute the sponge field.
 
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_t), pointer u => null()
 Velocity components at current time.
 
type(field_t), pointer v => null()
 
type(field_t), pointer w => null()
 
type(field_t), pointer u_bf => null()
 Base flow components.
 
type(field_t), pointer v_bf => null()
 
type(field_t), pointer w_bf => null()
 
character(len=1024) bf_rgstry_pref
 Suffix for the base flow fields in the neko field registry.
 
logical baseflow_set = .false.
 Flag indicating wether the baseflow has been set by the user.
 
logical baseflow_is_ic = .false.
 Indicates wether the baseflow should be applied from the initial condition.
 
type(field_t), pointer fringe => null()
 Fringe field. This field need to be added to the registry and filled by the user.
 
real(kind=rp), dimension(3) amplitudes
 Fringe amplitude in the 3 cartesian directions.
 
character(len=1024) fringe_registry_name
 Name of the fringe field in the neko field registry.
 
logical dump_fields = .false.
 Wether or not to write the fringe field to disk.
 
character(neko_fname_len) dump_fname
 Name of the fld file in which to dump the fields.
 
logical check = .true.
 Flag to check for the existence of fringe and baseflow fields.
 
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

Definition at line 62 of file sponge_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) sponge_source_term::sponge_source_term_t::compute_ ( class(sponge_source_term_t), intent(inout this,
type(time_state_t), intent(in time 
)

The fringe field must be added to the regisry and filled by the user according to where they want to apply the sponge. NOTE: Unfortunately this function is JSON dependent due to the initial condition being JSON dependent quite deep, there should be a nice way to get rid of that but it should take some effort.

Parameters
timeThe current time state.

Definition at line 110 of file sponge_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) sponge_source_term::sponge_source_term_t::free ( class(sponge_source_term_t), intent(inout this)

Definition at line 108 of file sponge_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) sponge_source_term::sponge_source_term_t::init ( class(sponge_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 
)

Definition at line 94 of file sponge_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_common()

procedure, pass(this) sponge_source_term::sponge_source_term_t::init_common ( class(sponge_source_term_t), intent(inout this,
type(field_list_t), intent(in), target  fields,
type(coef_t), intent(in), target  coef,
real(kind=rp), intent(in start_time,
real(kind=rp), intent(in end_time,
real(kind=rp), dimension(:), intent(in amplitudes,
character(len=*), intent(in fringe_registry_name,
character(len=*), intent(in bf_registry_pref,
logical, intent(in dump_fields,
character(len=*), intent(in dump_fname 
)

Definition at line 105 of file sponge_source_term.f90.

◆ init_constant()

procedure, pass(this) sponge_source_term::sponge_source_term_t::init_constant ( class(sponge_source_term_t), intent(inout this,
type(field_list_t), intent(in), target  fields,
type(coef_t), intent(in), target  coef,
real(kind=rp), intent(in start_time,
real(kind=rp), intent(in end_time,
real(kind=rp), dimension(:), intent(in amplitudes,
character(len=*), intent(in fringe_registry_name,
character(len=*), intent(in bf_registry_pref,
logical, intent(in dump_fields,
character(len=*), intent(in dump_fname,
real(kind=rp), dimension(:), intent(in constant_values 
)

Definition at line 96 of file sponge_source_term.f90.

◆ init_field()

procedure, pass(this) sponge_source_term::sponge_source_term_t::init_field ( class(sponge_source_term_t), intent(inout this,
type(field_list_t), intent(in), target  fields,
type(coef_t), intent(in), target  coef,
real(kind=rp), intent(in start_time,
real(kind=rp), intent(in end_time,
real(kind=rp), dimension(:), intent(in amplitudes,
character(len=*), intent(in fringe_registry_name,
character(len=*), intent(in bf_registry_pref,
logical, intent(in dump_fields,
character(len=*), intent(in dump_fname,
character(len=*), intent(in file_name,
logical, intent(in interpolate,
real(kind=rp), intent(in tolerance,
character(len=*), intent(inout mesh_file_name 
)

Definition at line 102 of file sponge_source_term.f90.

◆ init_user()

procedure, pass(this) sponge_source_term::sponge_source_term_t::init_user ( class(sponge_source_term_t), intent(inout this,
type(field_list_t), intent(in), target  fields,
type(coef_t), intent(in), target  coef,
real(kind=rp), intent(in start_time,
real(kind=rp), intent(in end_time,
real(kind=rp), dimension(:), intent(in amplitudes,
character(len=*), intent(in fringe_registry_name,
character(len=*), intent(in bf_registry_pref,
logical, intent(in dump_fields,
character(len=*), intent(in dump_fname 
)

Definition at line 99 of file sponge_source_term.f90.

Member Data Documentation

◆ amplitudes

real(kind=rp), dimension(3) sponge_source_term::sponge_source_term_t::amplitudes

Definition at line 83 of file sponge_source_term.f90.

◆ baseflow_is_ic

logical sponge_source_term::sponge_source_term_t::baseflow_is_ic = .false.

Definition at line 78 of file sponge_source_term.f90.

◆ baseflow_set

logical sponge_source_term::sponge_source_term_t::baseflow_set = .false.

Definition at line 75 of file sponge_source_term.f90.

◆ bf_rgstry_pref

character(len=1024) sponge_source_term::sponge_source_term_t::bf_rgstry_pref

Definition at line 73 of file sponge_source_term.f90.

◆ check

logical sponge_source_term::sponge_source_term_t::check = .true.

Definition at line 91 of file sponge_source_term.f90.

◆ coef

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

Definition at line 48 of file source_term.f90.

◆ dump_fields

logical sponge_source_term::sponge_source_term_t::dump_fields = .false.

Definition at line 87 of file sponge_source_term.f90.

◆ dump_fname

character(neko_fname_len) sponge_source_term::sponge_source_term_t::dump_fname

Definition at line 89 of file sponge_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.

◆ fringe

type(field_t), pointer sponge_source_term::sponge_source_term_t::fringe => null()

Definition at line 81 of file sponge_source_term.f90.

◆ fringe_registry_name

character(len=1024) sponge_source_term::sponge_source_term_t::fringe_registry_name

Definition at line 85 of file sponge_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.

◆ u

type(field_t), pointer sponge_source_term::sponge_source_term_t::u => null()

Definition at line 65 of file sponge_source_term.f90.

◆ u_bf

type(field_t), pointer sponge_source_term::sponge_source_term_t::u_bf => null()

Definition at line 69 of file sponge_source_term.f90.

◆ v

type(field_t), pointer sponge_source_term::sponge_source_term_t::v => null()

Definition at line 66 of file sponge_source_term.f90.

◆ v_bf

type(field_t), pointer sponge_source_term::sponge_source_term_t::v_bf => null()

Definition at line 70 of file sponge_source_term.f90.

◆ w

type(field_t), pointer sponge_source_term::sponge_source_term_t::w => null()

Definition at line 67 of file sponge_source_term.f90.

◆ w_bf

type(field_t), pointer sponge_source_term::sponge_source_term_t::w_bf => null()

Definition at line 71 of file sponge_source_term.f90.


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