User defined dirichlet condition, for which the user can work with an entire field. The type stores a separate dummy field field_bc
, which is passed to the user routine and can be populated with arbitrary values. The boundary condition then copy-pastes these values to the actual solution field using the mask of the boundary condition. So, in the end, only the relevant boundary values are updated.
More...
|
procedure, pass(this) | init_field => field_dirichlet_init |
| Constructor. More...
|
|
procedure, pass(this) | apply_scalar => field_dirichlet_apply_scalar |
| Apply scalar by performing a masked copy. More...
|
|
procedure, pass(this) | apply_vector => field_dirichlet_apply_vector |
| (No-op) Apply vector. More...
|
|
procedure, pass(this) | apply_vector_dev => field_dirichlet_apply_vector_dev |
| (No-op) Apply vector (device). More...
|
|
procedure, pass(this) | apply_scalar_dev => field_dirichlet_apply_scalar_dev |
| Apply scalar (device). More...
|
|
procedure, pass(this) | free => field_dirichlet_free |
| Destructor. More...
|
|
procedure, pass(this) | init_base => bc_init_base |
| Constructor. More...
|
|
procedure, pass(this) | free_base => bc_free_base |
| Destructor. More...
|
|
procedure, pass(this) | mark_facet => bc_mark_facet |
| Mark a facet on an element as part of the boundary condition. More...
|
|
procedure, pass(this) | mark_facets => bc_mark_facets |
| Mark all facets from a (facet, element) tuple list. More...
|
|
procedure, pass(this) | mark_zones_from_list => bc_mark_zones_from_list |
| Mark all facets from a list of zones, also marks type of bc in the mesh. More...
|
|
procedure, pass(this) | mark_zone => bc_mark_zone |
| Mark all facets from a zone. More...
|
|
procedure, pass(this) | finalize => bc_finalize |
| Finalize the construction of the bc by populting the msk and facet arrays. More...
|
|
|
type(field_t) | field_bc |
| A dummy field which can be manipulated by the user to set the boundary values. More...
|
|
type(field_list_t) | field_list |
| A field list, which just stores field_bc , for convenience. More...
|
|
procedure(field_dirichlet_update), pointer, nopass | update => null() |
| Function pointer to the user routine performing the update of the values of the boundary fields. More...
|
|
integer, dimension(:), allocatable | msk |
| The linear index of each node in each boundary facet. More...
|
|
integer, dimension(:), allocatable | facet |
| A list of facet ids (1 to 6), one for each element in msk. More...
|
|
type(dofmap_t), pointer | dof |
| Map of degrees of freedom. More...
|
|
type(coef_t), pointer | coef |
| SEM coefficients. More...
|
|
type(mesh_t), pointer | msh |
| The mesh. More...
|
|
type(space_t), pointer | xh |
| The function space. More...
|
|
type(stack_i4t2_t) | marked_facet |
| Index tuples (facet, element) marked as part of the boundary condition. More...
|
|
type(c_ptr) | msk_d = C_NULL_PTR |
| Device pointer for msk. More...
|
|
type(c_ptr) | facet_d = C_NULL_PTR |
| Device pointer for facet. More...
|
|
- Note
- Would be neat to add another class that contains all three dirichlet bcs for the velocity, this bc would then implement apply_vector.
Definition at line 61 of file field_dirichlet.f90.
◆ apply_scalar()
procedure, pass(this) field_dirichlet::field_dirichlet_t::apply_scalar |
◆ apply_scalar_dev()
procedure, pass(this) field_dirichlet::field_dirichlet_t::apply_scalar_dev |
◆ apply_vector()
procedure, pass(this) field_dirichlet::field_dirichlet_t::apply_vector |
◆ apply_vector_dev()
procedure, pass(this) field_dirichlet::field_dirichlet_t::apply_vector_dev |
◆ finalize()
procedure, pass(this) bc::bc_t::finalize |
|
inherited |
◆ free()
procedure, pass(this) field_dirichlet::field_dirichlet_t::free |
◆ free_base()
procedure, pass(this) bc::bc_t::free_base |
|
inherited |
◆ init_base()
procedure, pass(this) bc::bc_t::init_base |
|
inherited |
◆ init_field()
procedure, pass(this) field_dirichlet::field_dirichlet_t::init_field |
◆ mark_facet()
procedure, pass(this) bc::bc_t::mark_facet |
|
inherited |
◆ mark_facets()
procedure, pass(this) bc::bc_t::mark_facets |
|
inherited |
◆ mark_zone()
procedure, pass(this) bc::bc_t::mark_zone |
|
inherited |
◆ mark_zones_from_list()
procedure, pass(this) bc::bc_t::mark_zones_from_list |
|
inherited |
◆ coef
type(coef_t), pointer bc::bc_t::coef |
|
inherited |
◆ dof
◆ facet
integer, dimension(:), allocatable bc::bc_t::facet |
|
inherited |
◆ facet_d
type(c_ptr) bc::bc_t::facet_d = C_NULL_PTR |
|
inherited |
◆ field_bc
type(field_t) field_dirichlet::field_dirichlet_t::field_bc |
◆ field_list
type(field_list_t) field_dirichlet::field_dirichlet_t::field_list |
◆ marked_facet
type(stack_i4t2_t) bc::bc_t::marked_facet |
|
inherited |
◆ msh
type(mesh_t), pointer bc::bc_t::msh |
|
inherited |
◆ msk
integer, dimension(:), allocatable bc::bc_t::msk |
|
inherited |
◆ msk_d
type(c_ptr) bc::bc_t::msk_d = C_NULL_PTR |
|
inherited |
◆ update
◆ xh
type(space_t), pointer bc::bc_t::xh |
|
inherited |
The documentation for this type was generated from the following file: