Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
Dirichlet condition in non normal direction of a plane. More...
Public Member Functions | |
procedure, pass(this) | init (this, coef, json) |
Constructor. | |
procedure, pass(this) | init_from_components (this, coef) |
Constructor from components. | |
procedure, pass(this) | free (this) |
Destructor. | |
procedure, pass(this) | finalize (this) |
Finalize. | |
procedure, pass(this) | apply_scalar (this, x, n, t, tstep, strong) |
No-op scalar apply. | |
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, pass(this) | apply_vector (this, x, y, z, n, t, tstep, strong) |
Apply symmetry conditions (axis aligned) | |
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, pass(this) | apply_scalar_dev (this, x_d, t, tstep, strong) |
No-op scalar apply (device version) | |
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, pass(this) | apply_vector_dev (this, x_d, y_d, z_d, t, tstep, strong) |
Apply symmetry conditions (axis aligned) (device version) | |
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, pass(this) | init (this, coef, json) |
Constructor. | |
procedure(bc_constructor), deferred, pass | init (this, coef, json) |
Deferred constructor. | |
procedure, pass(this) | init_from_components (this, coef) |
Constructor from compoenents. | |
procedure, pass(this) | free (this) |
Destructor. | |
procedure(bc_destructor), deferred, pass | free (this) |
Deferred destructor. | |
procedure, pass(this) | get_normal_axis (this, sx, sy, sz, facet, el) |
Get the axis coressponding to the direction of the normal. | |
procedure, pass(this) | finalize (this) |
Finalize. | |
procedure(bc_finalize), deferred, pass | finalize (this) |
Deferred finalizer. | |
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. | |
Public Attributes | |
type(zero_dirichlet_t) | bc_x |
type(zero_dirichlet_t) | bc_y |
type(zero_dirichlet_t) | bc_z |
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. | |
Definition at line 46 of file non_normal.f90.
|
pure virtualinherited |
|
inherited |
x | The field for which to apply the boundary condition. |
n | The size of x. |
t | Current time. |
tstep | Current time-step. |
strong | Whether we are setting a strong or a weak bc. |
Definition at line 54 of file symmetry.f90.
|
inherited |
x_d | Device pointer to the field. |
t | The time value. |
tstep | The time iteration. |
strong | Whether we are setting a strong or a weak bc. |
Definition at line 56 of file symmetry.f90.
|
pure virtualinherited |
|
inherited |
x | The x comp of the field for which to apply the bc. |
y | The y comp of the field for which to apply the bc. |
z | The z comp of the field for which to apply the bc. |
n | The size of x, y, and z. |
t | Current time. |
tstep | Current time-step. |
strong | Whether we are setting a strong or a weak bc. |
Definition at line 55 of file symmetry.f90.
|
pure virtualinherited |
|
inherited |
x_d | Device pointer to the values to be applied for the x comp. |
y_d | Device pointer to the values to be applied for the y comp. |
z_d | Device pointer to the values to be applied for the z comp. |
t | The time value. |
tstep | Current time-step. |
strong | Whether we are setting a strong or a weak bc. |
Definition at line 57 of file symmetry.f90.
|
inherited |
procedure, pass(this) non_normal::non_normal_t::finalize | ( | class(non_normal_t), intent(inout), target | this | ) |
Definition at line 56 of file non_normal.f90.
|
inherited |
Definition at line 68 of file symmetry.f90.
procedure, pass(this) non_normal::non_normal_t::free | ( | class(non_normal_t), intent(inout), target | this | ) |
Definition at line 54 of file non_normal.f90.
|
inherited |
Definition at line 64 of file symmetry.f90.
|
inherited |
The normal direction is the one for which s is 0, so e.g for a y normal, sx and sz will be unity, and sy will be 0.
Definition at line 66 of file symmetry.f90.
procedure, pass(this) non_normal::non_normal_t::init | ( | class(non_normal_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 49 of file non_normal.f90.
|
inherited |
[in] | coef | The SEM coefficients. |
[in,out] | json | The JSON object configuring the boundary condition. |
Definition at line 59 of file symmetry.f90.
procedure, pass(this) non_normal::non_normal_t::init_from_components | ( | class(non_normal_t), intent(inout), target | this, |
type(coef_t), intent(in) | coef | ||
) |
[in] | coef | The SEM coefficients. |
Definition at line 51 of file non_normal.f90.
|
inherited |
[in] | coef | The SEM coefficients. |
Definition at line 61 of file symmetry.f90.
|
inherited |
Definition at line 50 of file symmetry.f90.
|
inherited |
Definition at line 51 of file symmetry.f90.
|
inherited |
Definition at line 52 of file symmetry.f90.
|
inherited |
|
inherited |
|
inherited |
|
inherited |