|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
Overset interface BC for a scalar field. More...


Public Member Functions | |
| procedure, pass(this) | init (this, coef, json) |
| Constructor. | |
| procedure, pass(this) | init_from_components (this, coef, field_name, tol, pad, log) |
| Constructor from components. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure, pass(this) | finalize (this) |
| 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 values at the overset interface. | |
| 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) | mark_labeled_zone (this, zone_index) |
| Mark all facets from a labeled zone. | |
| procedure, pass(this) | mark_labeled_zones (this, zone_indices) |
| Mark all facets from a list of labeled zones. | |
| procedure, pass(this) | finalize_base (this) |
| 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) |
| Deferred finalizer. | |
Public Attributes | |
| type(field_dirichlet_t) | bc_s |
| Underlying scalar field Dirichlet bc. | |
| type(field_list_t) | field_list |
| Single-field list for compatibility with field-based update patterns. | |
| character(len=:), allocatable | field_name |
| Name of the scalar field to interpolate from the registry. | |
| type(global_interpolation_t) | interface_interpolator |
| Interpolator. | |
| type(mask_t) | interface_dof_mask |
| Mask for overset interface points. | |
| type(mask_t) | domain_element_mask |
| type(vector_t) | x_dof |
| Vectors holding 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) | s_interface |
| Interpolated scalar values on the interface. | |
| type(vector_series_t) | s_interface_lag |
| integer | iextm_order = 1 |
| integer | last_tstep = -1 |
| type(vector_list_t) | interface_dof |
| type(vector_list_t) | interface_field |
| type(global_interpolation_settings_t) | interpolation_settings |
| Interpolation settings. | |
| integer | n_int_tot = 0 |
| logical | find_interface = .false. |
| logical | setup = .false. |
| logical | log = .false. |
| integer, dimension(:), allocatable | msk |
| The linear index of each constrained local degree of freedom. | |
| integer, dimension(:), allocatable | facet_node_msk |
| The linear index of each node on the marked boundary facets. | |
| integer, dimension(:), allocatable | facet |
| A list of facet ids (1 to 6), one for each entry in facet_node_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_node_msk_d = C_NULL_PTR |
| Device pointer for facet_node_msk. | |
| type(c_ptr) | facet_d = C_NULL_PTR |
| Device pointer for facet. | |
| integer | bc_type = -1 |
Type of the boundary condition, from the BC_* constants. | |
| 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 domain 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. | |
| procedure, pass, private | log_interface_error_ (this, s) |
| Log interface interpolation error diagnostics. | |
Definition at line 69 of file overset_interface.f90.
| procedure, pass(this) overset_interface::overset_interface_t::apply_scalar | ( | class(overset_interface_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. |
| n | Size of the array x. |
| time | The current time state. |
Definition at line 113 of file overset_interface.f90.
| procedure, pass(this) overset_interface::overset_interface_t::apply_scalar_dev | ( | class(overset_interface_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. |
| strm | Device stream |
Definition at line 120 of file overset_interface.f90.
|
pure virtualinherited |
| procedure, pass(this) overset_interface::overset_interface_t::apply_vector | ( | class(overset_interface_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 | ||
| ) |
Definition at line 115 of file overset_interface.f90.
|
pure virtualinherited |
| procedure, pass(this) overset_interface::overset_interface_t::apply_vector_dev | ( | class(overset_interface_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 | ||
| ) |
Definition at line 117 of file overset_interface.f90.
|
inherited |
|
private |
Definition at line 125 of file overset_interface.f90.
| procedure, pass(this) overset_interface::overset_interface_t::finalize | ( | class(overset_interface_t), intent(inout), target | this | ) |
Definition at line 111 of file overset_interface.f90.
| procedure, pass(this) overset_interface::overset_interface_t::free | ( | class(overset_interface_t), intent(inout), target | this | ) |
Definition at line 109 of file overset_interface.f90.
|
private |
Definition at line 127 of file overset_interface.f90.
| procedure, pass(this) overset_interface::overset_interface_t::init | ( | class(overset_interface_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 104 of file overset_interface.f90.
| procedure, pass(this) overset_interface::overset_interface_t::init_from_components | ( | class(overset_interface_t), intent(inout), target | this, |
| type(coef_t), intent(in) | coef, | ||
| character(len=*), intent(in) | field_name, | ||
| real(kind=rp), intent(in), optional | tol, | ||
| real(kind=rp), intent(in), optional | pad, | ||
| logical, intent(in), optional | log | ||
| ) |
| [in] | coef | The SEM coefficients. |
Definition at line 106 of file overset_interface.f90.
|
private |
Definition at line 133 of file overset_interface.f90.
|
private |
Definition at line 130 of file overset_interface.f90.
| procedure, pass(this) overset_interface::overset_interface_t::update | ( | class(overset_interface_t), intent(inout) | this, |
| type(time_state_t), intent(in) | time | ||
| ) |
Definition at line 122 of file overset_interface.f90.
| type(field_dirichlet_t) overset_interface::overset_interface_t::bc_s |
Definition at line 71 of file overset_interface.f90.
| type(mask_t) overset_interface::overset_interface_t::domain_element_mask |
Definition at line 80 of file overset_interface.f90.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
| type(field_list_t) overset_interface::overset_interface_t::field_list |
Definition at line 73 of file overset_interface.f90.
| character(len=:), allocatable overset_interface::overset_interface_t::field_name |
Definition at line 75 of file overset_interface.f90.
| logical overset_interface::overset_interface_t::find_interface = .false. |
Definition at line 93 of file overset_interface.f90.
| integer overset_interface::overset_interface_t::iextm_order = 1 |
Definition at line 87 of file overset_interface.f90.
| type(vector_list_t) overset_interface::overset_interface_t::interface_dof |
Definition at line 89 of file overset_interface.f90.
| type(mask_t) overset_interface::overset_interface_t::interface_dof_mask |
Definition at line 79 of file overset_interface.f90.
| type(vector_list_t) overset_interface::overset_interface_t::interface_field |
Definition at line 89 of file overset_interface.f90.
| type(global_interpolation_t) overset_interface::overset_interface_t::interface_interpolator |
Definition at line 77 of file overset_interface.f90.
| type(global_interpolation_settings_t) overset_interface::overset_interface_t::interpolation_settings |
Definition at line 91 of file overset_interface.f90.
| integer overset_interface::overset_interface_t::last_tstep = -1 |
Definition at line 88 of file overset_interface.f90.
| logical overset_interface::overset_interface_t::log = .false. |
Definition at line 95 of file overset_interface.f90.
|
static |
Definition at line 99 of file overset_interface.f90.
|
inherited |
|
inherited |
| integer overset_interface::overset_interface_t::n_int_tot = 0 |
Definition at line 92 of file overset_interface.f90.
|
inherited |
| type(vector_t) overset_interface::overset_interface_t::s_interface |
Definition at line 85 of file overset_interface.f90.
| type(vector_series_t) overset_interface::overset_interface_t::s_interface_lag |
Definition at line 86 of file overset_interface.f90.
| logical overset_interface::overset_interface_t::setup = .false. |
Definition at line 94 of file overset_interface.f90.
| type(vector_t) overset_interface::overset_interface_t::x_dof |
Definition at line 82 of file overset_interface.f90.
| type(vector_t) overset_interface::overset_interface_t::x_interface_dof |
Definition at line 83 of file overset_interface.f90.
| type(vector_t) overset_interface::overset_interface_t::y_dof |
Definition at line 82 of file overset_interface.f90.
| type(vector_t) overset_interface::overset_interface_t::y_interface_dof |
Definition at line 83 of file overset_interface.f90.
| type(vector_t) overset_interface::overset_interface_t::z_dof |
Definition at line 82 of file overset_interface.f90.
| type(vector_t) overset_interface::overset_interface_t::z_interface_dof |
Definition at line 83 of file overset_interface.f90.
|
inherited |