Neko  0.8.1
A portable framework for high-order spectral element flow simulations
scalar_user_source_term::scalar_user_source_term_t Type Reference

A source-term for the scalar, with procedure pointers pointing to the actual implementation in the user file. More...

Inheritance diagram for scalar_user_source_term::scalar_user_source_term_t:
Collaboration diagram for scalar_user_source_term::scalar_user_source_term_t:

Public Member Functions

procedure, pass(this) init => scalar_user_source_term_init
 Constructor from JSON (will throw!). More...
 
procedure, pass(this) init_from_components => scalar_user_source_term_init_from_components
 Constructor from components. More...
 
procedure, pass(this) free => scalar_user_source_term_free
 Destructor. More...
 
procedure, pass(this) compute_ => scalar_user_source_term_compute
 Computes the source term and adds the result to fields. More...
 
procedure, pass(this) init_base => source_term_init_base
 Constructor for the source_term_t (base) type. More...
 
procedure, pass(this) free_base => source_term_free_base
 Destructor for the source_term_t (base) type. More...
 
procedure, pass(this) compute => source_term_compute_wrapper
 Executes compute_ based on time conditions. More...
 

Public Attributes

type(dofmap_t), pointer dm
 Pointer to the dofmap of the right-hand-side fields. More...
 
real(kind=rp), dimension(:, :, :, :), allocatable s
 The source term. More...
 
type(c_ptr) s_d = C_NULL_PTR
 Device pointer for s. More...
 
procedure(scalar_source_compute_pointwise), pointer, nopass compute_pw_ => null()
 Compute the source term for a single point. More...
 
procedure(scalar_source_compute_vector), pointer, nopass compute_vector_ => null()
 Compute the source term for the entire boundary. More...
 
type(field_list_tfields
 The fields to be updated with the source term values. More...
 
type(coef_t), pointer coef => null()
 Coefficients for the SEM. More...
 
real(kind=rp) start_time = 0.0_rp
 Start time for adding the source term. More...
 
real(kind=rp) end_time = huge(0.0_rp)
 End time for adding the source term. More...
 

Detailed Description

A source-term for the scalar, with procedure pointers pointing to the actual implementation in the user file.

The user source term can be applied either pointiwse or acting on the whole array in a single call, which is referred to as "vector" application.

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

Definition at line 60 of file scalar_user_source_term.f90.

Member Function/Subroutine Documentation

◆ compute()

procedure, pass(this) source_term::source_term_t::compute
inherited

Executes compute_ based on time conditions.

Definition at line 59 of file source_term.f90.

◆ compute_()

procedure, pass(this) scalar_user_source_term::scalar_user_source_term_t::compute_

Computes the source term and adds the result to fields.

Definition at line 83 of file scalar_user_source_term.f90.

◆ free()

procedure, pass(this) scalar_user_source_term::scalar_user_source_term_t::free

Destructor.

Definition at line 81 of file scalar_user_source_term.f90.

◆ free_base()

procedure, pass(this) source_term::source_term_t::free_base
inherited

Destructor for the source_term_t (base) type.

Definition at line 57 of file source_term.f90.

◆ init()

procedure, pass(this) scalar_user_source_term::scalar_user_source_term_t::init

Constructor from JSON (will throw!).

Definition at line 76 of file scalar_user_source_term.f90.

◆ init_base()

procedure, pass(this) source_term::source_term_t::init_base
inherited

Constructor for the source_term_t (base) type.

Definition at line 55 of file source_term.f90.

◆ init_from_components()

procedure, pass(this) scalar_user_source_term::scalar_user_source_term_t::init_from_components

Constructor from components.

Definition at line 78 of file scalar_user_source_term.f90.

Member Data Documentation

◆ coef

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

Coefficients for the SEM.

Definition at line 48 of file source_term.f90.

◆ compute_pw_

procedure(scalar_source_compute_pointwise), pointer, nopass scalar_user_source_term::scalar_user_source_term_t::compute_pw_ => null()

Compute the source term for a single point.

Definition at line 69 of file scalar_user_source_term.f90.

◆ compute_vector_

procedure(scalar_source_compute_vector), pointer, nopass scalar_user_source_term::scalar_user_source_term_t::compute_vector_ => null()

Compute the source term for the entire boundary.

Definition at line 72 of file scalar_user_source_term.f90.

◆ dm

type(dofmap_t), pointer scalar_user_source_term::scalar_user_source_term_t::dm

Pointer to the dofmap of the right-hand-side fields.

Definition at line 62 of file scalar_user_source_term.f90.

◆ end_time

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

End time for adding the source term.

Definition at line 52 of file source_term.f90.

◆ fields

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

The fields to be updated with the source term values.

Definition at line 46 of file source_term.f90.

◆ s

real(kind=rp), dimension(:, :, :, :), allocatable scalar_user_source_term::scalar_user_source_term_t::s

The source term.

Definition at line 64 of file scalar_user_source_term.f90.

◆ s_d

type(c_ptr) scalar_user_source_term::scalar_user_source_term_t::s_d = C_NULL_PTR

Device pointer for s.

Definition at line 67 of file scalar_user_source_term.f90.

◆ start_time

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

Start time for adding the source term.

Definition at line 50 of file source_term.f90.


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