Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
User defined dirichlet condition for velocity. More...
Public Member Functions | |
procedure, pass(this) | apply_scalar (this, x, n, t, tstep, strong) |
No-op scalar apply. | |
procedure, pass(this) | apply_vector (this, x, y, z, n, t, tstep, strong) |
Apply user defined inflow conditions (vector valued) | |
procedure, pass(this) | validate (this) |
Validate user inflow condition. | |
procedure, pass(this) | set_eval (this, usr_eval) |
Assign user provided eval function. | |
procedure, pass(this) | apply_vector_dev (this, x_d, y_d, z_d, t, tstep, strong) |
procedure, pass(this) | apply_scalar_dev (this, x_d, t, tstep, strong) |
No-op scalar apply (device version) | |
procedure, pass(this) | init (this, coef, json) |
Constructor. | |
procedure, pass(this) | free (this) |
Destructor. | |
procedure, pass(this) | finalize (this) |
Finalize. | |
procedure, pass(this) | init_base (this, coef) |
Constructor. | |
procedure, pass(this) | free_base (this) |
Destructor. | |
procedure, pass(this) | mark_facet (this, facet, el) |
Mark a facet on an element as part of the boundary condition. | |
procedure, pass(this) | mark_facets (this, facet_list) |
Mark all facets from a (facet, element) tuple list. | |
procedure, pass(this) | mark_zone (this, bc_zone) |
Mark all facets from a zone. | |
procedure, pass(this) | finalize_base (this, only_facets) |
Finalize the construction of the bc by populating the msk and facet arrays. | |
procedure, pass(this) | apply_scalar_generic (this, x, n, t, tstep) |
Apply the boundary condition to a scalar field. Dispatches to the CPU or the device version. | |
procedure, pass(this) | apply_vector_generic (this, x, y, z, n, t, tstep) |
Apply the boundary condition to a vector field. Dispatches to the CPU or the device version. | |
procedure, pass(this) | debug_mask_ (this, file_name) |
Write a field showing the mask of the bcs. | |
procedure(bc_apply_scalar), deferred, pass | apply_scalar (this, x, n, t, tstep, strong) |
Apply the boundary condition to a scalar field on the CPU. | |
procedure(bc_apply_vector), deferred, pass | apply_vector (this, x, y, z, n, t, tstep, strong) |
Apply the boundary condition to a vector field on the CPU. | |
procedure(bc_apply_scalar_dev), deferred, pass | apply_scalar_dev (this, x_d, t, tstep, strong) |
Device version of apply_scalar on the device. | |
procedure(bc_apply_vector_dev), deferred, pass | apply_vector_dev (this, x_d, y_d, z_d, t, tstep, strong) |
Device version of apply_vector on the device. | |
procedure(bc_destructor), deferred, pass | free (this) |
Deferred destructor. | |
procedure(bc_constructor), deferred, pass | init (this, coef, json) |
Deferred constructor. | |
procedure(bc_finalize), deferred, pass | finalize (this) |
Deferred finalizer. | |
Public Attributes | |
integer, dimension(:), allocatable | msk |
The linear index of each node in each boundary facet. | |
integer, dimension(:), allocatable | facet |
A list of facet ids (1 to 6), one for each element in msk. | |
type(dofmap_t), pointer | dof => null() |
Map of degrees of freedom. | |
type(coef_t), pointer | coef => null() |
SEM coefficients. | |
type(mesh_t), pointer | msh => null() |
The mesh. | |
type(space_t), pointer | xh => null() |
The function space. | |
type(stack_i4t2_t) | marked_facet |
Index tuples (facet, element) marked as part of the boundary condition. | |
type(c_ptr) | msk_d = C_NULL_PTR |
Device pointer for msk. | |
type(c_ptr) | facet_d = C_NULL_PTR |
Device pointer for facet. | |
logical | strong = .true. |
Wether the bc is strongly enforced. Essentially valid for all Dirichlet types of bcs. These need to be masked out for solvers etc, so that values are not affected. Mixed bcs are, by convention, weak. | |
Static Public Attributes | |
procedure(usr_inflow_eval), pointer, nopass | eval => null() |
Private Attributes | |
type(c_ptr), private | usr_x_d = C_NULL_PTR |
type(c_ptr), private | usr_y_d = C_NULL_PTR |
type(c_ptr), private | usr_z_d = C_NULL_PTR |
Definition at line 47 of file usr_inflow.f90.
|
pure virtualinherited |
procedure, pass(this) usr_inflow::usr_inflow_t::apply_scalar | ( | class(usr_inflow_t), intent(inout) | this, |
real(kind=rp), dimension(n), intent(inout) | x, | ||
integer, intent(in) | n, | ||
real(kind=rp), intent(in), optional | t, | ||
integer, intent(in), optional | tstep, | ||
logical, intent(in), optional | strong | ||
) |
Definition at line 53 of file usr_inflow.f90.
procedure, pass(this) usr_inflow::usr_inflow_t::apply_scalar_dev | ( | class(usr_inflow_t), intent(inout), target | this, |
type(c_ptr) | x_d, | ||
real(kind=rp), intent(in), optional | t, | ||
integer, intent(in), optional | tstep, | ||
logical, intent(in), optional | strong | ||
) |
Definition at line 58 of file usr_inflow.f90.
|
pure virtualinherited |
procedure, pass(this) usr_inflow::usr_inflow_t::apply_vector | ( | class(usr_inflow_t), intent(inout) | this, |
real(kind=rp), dimension(n), intent(inout) | x, | ||
real(kind=rp), dimension(n), intent(inout) | y, | ||
real(kind=rp), dimension(n), intent(inout) | z, | ||
integer, intent(in) | n, | ||
real(kind=rp), intent(in), optional | t, | ||
integer, intent(in), optional | tstep, | ||
logical, intent(in), optional | strong | ||
) |
Definition at line 54 of file usr_inflow.f90.
|
pure virtualinherited |
procedure, pass(this) usr_inflow::usr_inflow_t::apply_vector_dev | ( | class(usr_inflow_t), intent(inout), target | this, |
type(c_ptr) | x_d, | ||
type(c_ptr) | y_d, | ||
type(c_ptr) | z_d, | ||
real(kind=rp), intent(in), optional | t, | ||
integer, intent(in), optional | tstep, | ||
logical, intent(in), optional | strong | ||
) |
Definition at line 57 of file usr_inflow.f90.
|
inherited |
procedure, pass(this) usr_inflow::usr_inflow_t::finalize | ( | class(usr_inflow_t), intent(inout), target | this | ) |
Definition at line 64 of file usr_inflow.f90.
procedure, pass(this) usr_inflow::usr_inflow_t::free | ( | class(usr_inflow_t), intent(inout), target | this | ) |
Definition at line 62 of file usr_inflow.f90.
procedure, pass(this) usr_inflow::usr_inflow_t::init | ( | class(usr_inflow_t), intent(inout), target | this, |
type(coef_t), intent(in) | coef, | ||
type(json_file), intent(inout) | json | ||
) |
[in] | coef | The SEM coefficients. |
[in,out] | json | The JSON object configuring the boundary condition. |
Definition at line 60 of file usr_inflow.f90.
procedure, pass(this) usr_inflow::usr_inflow_t::set_eval | ( | class(usr_inflow_t), intent(inout) | this, |
procedure(usr_inflow_eval) | usr_eval | ||
) |
user_eval | User specified boundary condition for u,v,w (vector) |
Definition at line 56 of file usr_inflow.f90.
Definition at line 55 of file usr_inflow.f90.
|
static |
Definition at line 48 of file usr_inflow.f90.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
private |
Definition at line 49 of file usr_inflow.f90.
|
private |
Definition at line 50 of file usr_inflow.f90.
|
private |
Definition at line 51 of file usr_inflow.f90.