|
Neko 1.99.3
A portable framework for high-order spectral element flow simulations
|
Extension of the user defined dirichlet condition overset_interface
More...


Public Member Functions | |
| procedure, pass(this) | init (this, coef, json) |
| Constructor. | |
| procedure, pass(this) | init_from_components (this, coef, tol, pad) |
| Constructor from components. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | finalize (this, only_facets) |
| Finalize. | |
| procedure, pass(this) | apply_scalar (this, x, n, time, strong) |
| Apply scalar by performing a masked copy. | |
| procedure, pass(this) | apply_vector (this, x, y, z, n, time, strong) |
| (No-op) Apply vector. | |
| procedure, pass(this) | apply_vector_dev (this, x_d, y_d, z_d, time, strong, strm) |
| (No-op) Apply vector (device). | |
| procedure, pass(this) | apply_scalar_dev (this, x_d, time, strong, strm) |
| Apply scalar (device). | |
| procedure, pass(this) | update (this, time) |
| Update the values at the interfaces. | |
| 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, time, strong, strm) |
| 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, time, strong, strm) |
| 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, time, 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, time, 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, time, strong, strm) |
| 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, time, strong, strm) |
| 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, only_facets) |
| Deferred finalizer. | |
Public Attributes | |
| type(field_dirichlet_t) | bc_u |
| type(field_dirichlet_t) | bc_v |
| type(field_dirichlet_t) | bc_w |
| type(field_list_t) | field_list |
| A field list to store the bcs for passing to various subroutines. | |
| type(global_interpolation_t) | interface_interpolator |
| Interpolator. | |
| type(mask_t) | interface_dof_mask |
| Mask for the overset interface points. | |
| type(mask_t) | domain_element_mask |
| type(vector_t) | x_dof |
| Vectors holding the dof coordinates for cases where mesh moves. | |
| type(vector_t) | y_dof |
| type(vector_t) | z_dof |
| type(vector_t) | x_interface_dof |
| type(vector_t) | y_interface_dof |
| type(vector_t) | z_interface_dof |
| type(vector_t) | u_interface |
| type(vector_t) | v_interface |
| type(vector_t) | w_interface |
| type(vector_list_t) | interface_dof |
| type(vector_list_t) | interface_field |
| type(global_interpolation_settings_t) | interpolation_settings |
| Interpolation settings. | |
| logical | find_interface = .false. |
| logical | setup = .false. |
| 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. | |
| logical | updated = .false. |
| Indicates wether the bc has been updated, for those BCs that need additional computations. | |
| character(len=:), allocatable | name |
| integer, dimension(:), allocatable | zone_indices |
Static Public Attributes | |
| procedure(morph_overset_interface), pointer, nopass | morph_interface => null() |
| Function pointer to the user routine performing the update of the values of the boundary fields. | |
Private Member Functions | |
| procedure, pass, private | build_masks_ (this) |
| Build the masks for the overset interface. | |
| procedure, pass, private | gather_interface_dofs_ (this) |
| Gather the dofs at the interface. | |
| procedure, pass, private | setup_interpolator_ (this) |
| Set up the interpolator. | |
Definition at line 73 of file overset_interface_vector.f90.
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_scalar | ( | class(overset_interface_vector_t), intent(inout) | this, |
| real(kind=rp), dimension(n), intent(inout) | x, | ||
| integer, intent(in) | n, | ||
| type(time_state_t), intent(in), optional | time, | ||
| logical, intent(in), optional | strong | ||
| ) |
| x | Field onto which to copy the values (e.g. u,v,w,p or s). |
| n | Size of the array x. |
| t | Current time state. |
Definition at line 112 of file overset_interface_vector.f90.
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_scalar_dev | ( | class(overset_interface_vector_t), intent(inout), target | this, |
| type(c_ptr), intent(inout) | x_d, | ||
| type(time_state_t), intent(in), optional | time, | ||
| logical, intent(in), optional | strong, | ||
| type(c_ptr), intent(inout) | strm | ||
| ) |
| x_d | Device pointer to the field onto which to copy the values. |
| time | The current time state. |
Definition at line 121 of file overset_interface_vector.f90.
|
pure virtualinherited |
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_vector | ( | class(overset_interface_vector_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, | ||
| type(time_state_t), intent(in), optional | time, | ||
| logical, intent(in), optional | strong | ||
| ) |
| x | x-component of the field onto which to apply the values. |
| y | y-component of the field onto which to apply the values. |
| z | z-component of the field onto which to apply the values. |
| n | Size of the x, y and z arrays. |
| time | The current time state. |
Definition at line 115 of file overset_interface_vector.f90.
|
pure virtualinherited |
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::apply_vector_dev | ( | class(overset_interface_vector_t), intent(inout), target | this, |
| type(c_ptr), intent(inout) | x_d, | ||
| type(c_ptr), intent(inout) | y_d, | ||
| type(c_ptr), intent(inout) | z_d, | ||
| type(time_state_t), intent(in), optional | time, | ||
| logical, intent(in), optional | strong, | ||
| type(c_ptr), intent(inout) | strm | ||
| ) |
| x | x-component of the field onto which to apply the values. |
| y | y-component of the field onto which to apply the values. |
| z | z-component of the field onto which to apply the values. |
| time | The current time state. |
| strm | Device stream |
Definition at line 118 of file overset_interface_vector.f90.
|
inherited |
|
private |
Definition at line 126 of file overset_interface_vector.f90.
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::finalize | ( | class(overset_interface_vector_t), intent(inout), target | this, |
| logical, intent(in), optional | only_facets | ||
| ) |
Definition at line 110 of file overset_interface_vector.f90.
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::free | ( | class(overset_interface_vector_t), intent(inout), target | this | ) |
Definition at line 108 of file overset_interface_vector.f90.
|
private |
Definition at line 128 of file overset_interface_vector.f90.
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::init | ( | class(overset_interface_vector_t), intent(inout), target | this, |
| type(coef_t), intent(in), target | 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 103 of file overset_interface_vector.f90.
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::init_from_components | ( | class(overset_interface_vector_t), intent(inout), target | this, |
| type(coef_t), intent(in) | coef, | ||
| real(kind=rp), intent(in), optional | tol, | ||
| real(kind=rp), intent(in), optional | pad | ||
| ) |
| [in] | coef | The SEM coefficients. |
Definition at line 105 of file overset_interface_vector.f90.
|
private |
Definition at line 130 of file overset_interface_vector.f90.
| procedure, pass(this) overset_interface_vector::overset_interface_vector_t::update | ( | class(overset_interface_vector_t), intent(inout) | this, |
| type(time_state_t), intent(in) | time | ||
| ) |
Definition at line 123 of file overset_interface_vector.f90.
| type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_u |
Definition at line 75 of file overset_interface_vector.f90.
| type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_v |
Definition at line 77 of file overset_interface_vector.f90.
| type(field_dirichlet_t) overset_interface_vector::overset_interface_vector_t::bc_w |
Definition at line 79 of file overset_interface_vector.f90.
| type(mask_t) overset_interface_vector::overset_interface_vector_t::domain_element_mask |
Definition at line 86 of file overset_interface_vector.f90.
|
inherited |
|
inherited |
| type(field_list_t) overset_interface_vector::overset_interface_vector_t::field_list |
Definition at line 81 of file overset_interface_vector.f90.
| logical overset_interface_vector::overset_interface_vector_t::find_interface = .false. |
Definition at line 94 of file overset_interface_vector.f90.
| type(vector_list_t) overset_interface_vector::overset_interface_vector_t::interface_dof |
Definition at line 91 of file overset_interface_vector.f90.
| type(mask_t) overset_interface_vector::overset_interface_vector_t::interface_dof_mask |
Definition at line 85 of file overset_interface_vector.f90.
| type(vector_list_t) overset_interface_vector::overset_interface_vector_t::interface_field |
Definition at line 91 of file overset_interface_vector.f90.
| type(global_interpolation_t) overset_interface_vector::overset_interface_vector_t::interface_interpolator |
Definition at line 83 of file overset_interface_vector.f90.
| type(global_interpolation_settings_t) overset_interface_vector::overset_interface_vector_t::interpolation_settings |
Definition at line 93 of file overset_interface_vector.f90.
|
static |
Definition at line 99 of file overset_interface_vector.f90.
|
inherited |
|
inherited |
|
inherited |
| logical overset_interface_vector::overset_interface_vector_t::setup = .false. |
Definition at line 95 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::u_interface |
Definition at line 90 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::v_interface |
Definition at line 90 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::w_interface |
Definition at line 90 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::x_dof |
Definition at line 88 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::x_interface_dof |
Definition at line 89 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::y_dof |
Definition at line 88 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::y_interface_dof |
Definition at line 89 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::z_dof |
Definition at line 88 of file overset_interface_vector.f90.
| type(vector_t) overset_interface_vector::overset_interface_vector_t::z_interface_dof |
Definition at line 89 of file overset_interface_vector.f90.
|
inherited |