ply_subres_get_elemcolor Subroutine

public subroutine ply_subres_get_elemcolor(fun, varSys, elempos, time, tree, nElems, nDofs, res)

Get the color of an element.

This routine provides the get_element for the variable definition. It returns the coloring value for the elements in elempos with the given number of degrees of freedom.

The header of this subroutine must be same as tem_varSys_proc_element

end dummy code to touch unused arguments

\todo HK: we could do a binary search on the colpos, to find the next colored element equal or greater to the current element.

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

type(tem_varSys_type), intent(in) :: varSys

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

TreeID of the element to get the variable for.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

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

global treelm mesh info

integer, intent(in) :: nElems

Number of elements to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

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

Resulting values for the requested variable.

Linearized array dimension: (nComponents of resulting variable) x (nDegrees of freedom) x (nElems) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp


Contents


Variables

TypeVisibilityAttributesNameInitial
type(ply_subres_colvar_type), private, pointer:: p
integer, private :: ipos
integer, private :: iElem
integer, private :: icol_pos
integer, private :: icol_elem
integer, private :: isub_pos
integer, private :: isub_elem
integer, private :: colchar
integer, private :: colbit
integer, private :: cpos
integer, private :: first
integer, private :: minsubdofs
logical, private :: has_subres
real(kind=rk), private :: void

Dummy code to touch unused arguments

real(kind=rk), private :: fill

Dummy code to touch unused arguments

type(tem_time_type), private :: now