atl_cube_elem_module Module

Container collecting the subroutines and datatypes which are specific for cubic elements.


Uses

  • module~~atl_cube_elem_module~~UsesGraph module~atl_cube_elem_module atl_cube_elem_module module~tem_logging_module tem_logging_module module~atl_cube_elem_module->module~tem_logging_module module~tem_construction_module tem_construction_module module~atl_cube_elem_module->module~tem_construction_module module~treelmesh_module treelmesh_module module~atl_cube_elem_module->module~treelmesh_module module~tem_facedata_module tem_faceData_module module~atl_cube_elem_module->module~tem_facedata_module module~tem_geometry_module tem_geometry_module module~atl_cube_elem_module->module~tem_geometry_module module~env_module env_module module~atl_cube_elem_module->module~env_module

Used by


Contents


Derived Types

type, public :: atl_cube_elem_type

Container type describing cubic elements on a single refinement level.

Read more…

Components

TypeVisibilityAttributesNameInitial
type(tem_face_type), private :: faces

Description of the faces on this level.

Read more…
type(tem_face_type), private :: faces_stab

Description of the faces (required for stabilization) on this level.

Read more…
type(tem_levelDesc_type), private :: descriptor

Descriptor describing the grid on this refinement level.

Read more…
real(kind=rk), private :: length

Length of the cubical element.

real(kind=rk), private :: side_area

Surface area of the individual sides.

real(kind=rk), private :: volume

Volume of each element.

real(kind=rk), private, allocatable:: bary_coord(:,:)

Bary center coordinate of each element.

Read more…
real(kind=rk), private :: inv_jacobit

Inverse jacobian \f$\partial\xi_i/\partial x_j\f$ (the jacobian is the jacobi matrix of the mapping from the reference to the physical cell).

real(kind=rk), private :: jacobit_det

Determinant of the jacobian.

Read more…

Subroutines

public subroutine atl_init_cube_elem(element, descriptor, level, tree)

Initialize the cubic elements.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(atl_cube_elem_type), intent(out) :: element

This is the output and represenets the cubic elements given as a subset of tree ids in the complete tree.

type(tem_levelDesc_type), intent(in) :: descriptor

The descriptor of the element list, describing the connectivity of the mesh explicitly.

All the descriptors are derived previously from the complete treelmesh, and need to be passed in here.

integer, intent(in) :: level

Treelm level of the cubes to be initialized.

type(treelmesh_type), intent(in) :: tree

The tree representation of your mesh.

public subroutine atl_get_numberOfElemsPerLevel(descriptor, nCells, tree)

Subroutine to count the number of elements per level.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_levelDesc_type), intent(in) :: descriptor(tree%global%minLevel:tree%global%maxLevel)

Array of descriptors for each level in the mesh.

integer, intent(out), allocatable:: nCells(:)

The number of cells for each levelDescriptor (including fluid, ghost and halo cells).

type(treelmesh_type), intent(in) :: tree

The tree representation of the mesh

private subroutine calc_barycoord(treeids, nElems, bary_coord, tree)

Calculate barycentric coordinates of the tree ids given in treeids.

Arguments

TypeIntentOptionalAttributesName
integer(kind=long_k), intent(in) :: treeids(:)

Tree ids you want to build the barycentric coordinates for.

integer, intent(in) :: nElems

the number of tree ids in in treeids.

real(kind=rk), intent(out) :: bary_coord(:,:)

Array of barycenteric coordinates for the cells given in treeidsubset. This array has to be allocated before you can use it as an input argument. The dimensions are: First dimension is subsetsize and the second dimension is the space dimension, i.e. 3.

type(treelmesh_type), intent(in) :: tree

Tree representation of your mesh.