|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
Implements boundary condition projectors for vector fields. Two types concrete types are provided: segregated_vector_bc_projector_t for simple component-wise resolution, and coupled_vector_bc_projector_t for resolving mixed boundary conditions.
Data Types | |
| type | coupled_vector_bc_projector_t |
| A coupled projector for vector fields, suitable for mixed boundary conditions. More... | |
| type | segregated_vector_bc_projector_t |
| A projector for vector fields that acts component-wise. More... | |
| interface | vector_bc_projector_apply_intrf |
| Apply the resolved vector boundary constraints. More... | |
| interface | vector_bc_projector_finalize_intrf |
| Finalize the vector boundary-condition projector. More... | |
| interface | vector_bc_projector_free_intrf |
| Free the vector boundary-condition projector. More... | |
| interface | vector_bc_projector_init_intrf |
| Initialize the vector boundary-condition projector. More... | |
| interface | vector_bc_projector_mark_bc_intrf |
| Mark a boundary condition in the vector boundary-condition projector. More... | |
| interface | vector_bc_projector_mark_bc_list_intrf |
| Mark a list of boundary conditions in the projector. More... | |
| type | vector_bc_projector_t |
| Abstract type for resolving vector boundary conditions. More... | |
Functions/Subroutines | |
| subroutine | vector_bc_projector_mark_bc_component (this, bc, component) |
| Report unsupported component-specific marking. | |
| subroutine | vector_bc_projector_mark_bc_list_component (this, bclst, component) |
| Report unsupported component-specific list marking. | |
| subroutine | segregated_vector_bc_projector_free (this) |
| Destructor. | |
| subroutine | segregated_vector_bc_projector_init (this, coef) |
| Constructor. | |
| subroutine | segregated_vector_bc_projector_finalize (this, rebuild_mask) |
| Finalize the segregated vector boundary-condition projector. | |
| subroutine | segregated_vector_bc_projector_mark_bc (this, bc) |
| Mark a boundary condition in the segregated projector. | |
| subroutine | segregated_vector_bc_projector_mark_bc_component (this, bc, component) |
| Mark a boundary condition on one Cartesian component. | |
| subroutine | segregated_vector_bc_projector_mark_bc_list (this, bclst) |
| Mark a list of boundary conditions in the segregated projector. | |
| subroutine | segregated_vector_bc_projector_mark_bc_list_component (this, bclst, component) |
| Mark a list of boundary conditions on one Cartesian component. | |
| subroutine | segregated_vector_bc_projector_apply (this, x, y, z, n, strm) |
| Apply the segregated vector boundary constraints. | |
| subroutine, public | vector_bc_projector_components (this, x, y, z) |
| Access the component scalar projectors from a segregated vector projector. | |
| subroutine | coupled_vector_bc_projector_free (this) |
| Destructor. | |
| subroutine | coupled_vector_bc_projector_init (this, coef) |
| Constructor. | |
| subroutine | coupled_vector_bc_projector_mark_bc (this, bc) |
| Register one vector boundary condition in the coupled projector. | |
| subroutine | coupled_vector_bc_projector_mark_bc_list (this, bclst) |
| Register a list of vector boundary conditions in the coupled projector. | |
| subroutine | coupled_vector_bc_projector_clear_masks (this) |
| Clear the resolved mask-side state of the coupled projector. | |
| subroutine | coupled_vector_bc_projector_clear_basis (this) |
| Clear the resolved basis-side state of the coupled projector. | |
| subroutine | coupled_vector_bc_projector_finalize (this, rebuild_mask) |
| Finalize the coupled projector by resolving the accumulated BC list. | |
| subroutine | coupled_vector_bc_projector_rebuild_masks (this) |
| Rebuild the resolved masks and local constraint flags. | |
| subroutine | coupled_vector_bc_projector_rebuild_basis (this) |
| Rebuild the local mixed-node basis. | |
| subroutine | coupled_vector_bc_projector_apply (this, x, y, z, n, strm) |
| Apply homogeneous boundary constraints in the local basis. | |
| subroutine | coupled_vector_bc_projector_debug_output (this, field_name) |
| Write fields showing the coupled projector mask and basis. | |
| subroutine | coupled_vector_bc_projector_debug_output_normal_component (this, x, y, z, n, field_name) |
Write scalar fields with the normal component u.n on mixed BC nodes. | |
|
private |
| [in,out] | x | x-component field values. |
| [in,out] | y | y-component field values. |
| [in,out] | z | z-component field values. |
| [in] | n | Number of entries in each component array. |
| [in,out] | strm | Optional backend stream/queue used on device backends. |
Definition at line 1330 of file vector_bc_projector.f90.

|
private |
Definition at line 613 of file vector_bc_projector.f90.
|
private |
Releases the resolved Dirichlet and mixed masks, compact boundary-node caches, and the per-mixed-node constraint flags together with their device mirrors.
Definition at line 577 of file vector_bc_projector.f90.
|
private |
| [in] | field_name | Optional base name for the output file. The .fld suffix is appended automatically. |
Definition at line 1422 of file vector_bc_projector.f90.

|
private |
The output is zero outside mixed_dof_mask. The normal vectors come from (1) the resolved basis stored in this projector and (2) the normals stored in coef_t. No area scaling is applied.
| [in] | x | x-component of the vector field. |
| [in] | y | y-component of the vector field. |
| [in] | z | z-component of the vector field. |
| [in] | n | Number of entries in x, y, z. |
| [in] | field_name | Optional base name for the output file. The .fld suffix is appended automatically. |
Definition at line 1518 of file vector_bc_projector.f90.

|
private |
This routine builds the dof masks for Dirichlet and mixed nodes, and computes the local basis for the mixed ones.
Definition at line 624 of file vector_bc_projector.f90.
|
private |
Definition at line 464 of file vector_bc_projector.f90.
|
private |
| [in] | coef | SEM coefficients. |
This resets any previous resolved state, stores pointers to the coefficient and dofmap objects, and precomputes reference-element lookup tables used later to reconstruct mixed-node normals on edges and corners.
Definition at line 486 of file vector_bc_projector.f90.

|
private |
| [in,out] | bc | Boundary condition to queue for resolution. |
Definition at line 547 of file vector_bc_projector.f90.
|
private |
| [in] | bclst | Boundary-condition list to queue. |
Definition at line 561 of file vector_bc_projector.f90.
|
private |
Using the resolved mixed-node mask and constraint metadata built by rebuild_masks(), this routine reconstructs consistent normals on face, edge, and corner nodes and then builds an orthonormal local basis (n, t1, t2) for each mixed node. It then propagates the basis data to all marked mixed boundary conditions.
Definition at line 917 of file vector_bc_projector.f90.

|
private |
This routine reduces the queued boundary conditions to a nodal classification, constructs the global Dirichlet and mixed-node masks, computes BC-local resolved supports for mixed_bc_t instances, and fills the local constraint flags constraint_n, constraint_t1, and constraint_t2 on the mixed-node mask.
Definition at line 642 of file vector_bc_projector.f90.

|
private |
| [in,out] | x | x-component field values. |
| [in,out] | y | y-component field values. |
| [in,out] | z | z-component field values. |
| [in] | n | Number of entries in each component array. |
| [in,out] | strm | Optional backend stream/queue used on device backends. |
Definition at line 422 of file vector_bc_projector.f90.
|
private |
Definition at line 335 of file vector_bc_projector.f90.
|
private |
Definition at line 317 of file vector_bc_projector.f90.
|
private |
| [in] | coef | SEM coefficients defining the dof layout. |
Definition at line 326 of file vector_bc_projector.f90.
|
private |
Fully constrained vector boundary conditions are applied to all three component projectors.
| [in,out] | bc | Boundary condition to register. |
Definition at line 344 of file vector_bc_projector.f90.
|
private |
| [in,out] | bc | Boundary condition to register. |
| [in] | component | Component selector. |
Definition at line 361 of file vector_bc_projector.f90.
|
private |
| [in] | bclst | Boundary-condition list to register. |
Definition at line 387 of file vector_bc_projector.f90.
|
private |
| [in] | bclst | Boundary-condition list to register. |
| [in] | component | Component selector. |
Definition at line 402 of file vector_bc_projector.f90.
| subroutine, public vector_bc_projector::vector_bc_projector_components | ( | class(vector_bc_projector_t), intent(inout), target | this, |
| type(scalar_bc_projector_t), intent(inout), pointer | x, | ||
| type(scalar_bc_projector_t), intent(inout), pointer | y, | ||
| type(scalar_bc_projector_t), intent(inout), pointer | z | ||
| ) |
| [in,out] | x | Pointer to the x-component scalar projector. |
| [in,out] | y | Pointer to the y-component scalar projector. |
| [in,out] | z | Pointer to the z-component scalar projector. |
Definition at line 439 of file vector_bc_projector.f90.

|
private |
Definition at line 295 of file vector_bc_projector.f90.
|
private |
Definition at line 306 of file vector_bc_projector.f90.