Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
 All Classes Files Functions Variables Typedefs Macros Groups Pages
elementutils Module Reference

Public Member Functions

recursive subroutine freematrix (Matrix)
 
subroutine makelistmatrix (Model, Solver, Mesh, List, Reorder, LocalNodes, Equation, DGSolver, GlobalBubbles)
 
subroutine initializematrix (Matrix, n, List, Reorder, InvInitialReorder, DOFs)
 
type(matrix_t) function, pointer creatematrix (Model, Solver, Mesh, Perm, DOFs, MatrixFormat, OptimizeBW, Equation, DGSolver, GlobalBubbles)
 
subroutine rotatematrix (Matrix, Vector, n, DIM, DOFs, NodeIndexes, Normals, Tangent1, Tangent2)
 
subroutine tangentdirections (Normal, Tangent1, Tangent2)
 
real(kind=dp) function volumeintegrate (Model, ElementList, IntegrandFunctionName)
 
function fluxintegrate (Model, ElementList, IntegrandFunctionName)
 
real(kind=dp) function,
dimension(3) 
surfaceintegrate (Model, ElementList, IntegrandFunctionName)
 
real(kind=dp) function lineintegrate (Model, LineElement, LineElementNodes, IntegrandFunctionName, QuadrantTreeExists, RootQuadrant)
 
real(kind=dp) function elementarea (Mesh, Element, N)
 

Member Function/Subroutine Documentation

type(matrix_t) function, pointer elementutils::creatematrix ( type(model_t)  Model,
type(solver_t), target  Solver,
type(mesh_t)  Mesh,
integer, dimension(:), target  Perm,
integer  DOFs,
integer  MatrixFormat,
logical  OptimizeBW,
character(len=*), optional  Equation,
logical, optional  DGSolver,
logical, optional  GlobalBubbles 
)
real(kind=dp) function elementutils::elementarea ( type(mesh_t), pointer  Mesh,
type(element_t)  Element,
integer  N 
)

References coordinatesystems::coordinatesqrtmetric(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), nx, and ny.

Referenced by computeaveragevelocity(), radiation::computeradiationcoeff(), radiation::computeradiationload(), diffusegrayradiation(), heatsolver(), localmatrix(), maxwellstresstensorintegrate(), normalizefactors(), surfaceforceintegration(), and updategebhardtfactors().

Here is the call graph for this function:

Here is the caller graph for this function:

function elementutils::fluxintegrate ( type(model_t)  Model,
integer, dimension(:)  ElementList,
character(len=*)  IntegrandFunctionName 
)

Integrates the normal component of a user-defined vector function over the specified boundary elements.

Deprecated:
Is this used for something?
Parameters
modelAll model information (mesh, materials, BCs, etc...)
elementlistList of elements that belong to the integration boundary
integrandfunctionnameName the function has in the .sif file

References coordinatesystems::coordinatesqrtmetric(), coordinatesystems::coordinatesystemdimension(), elementdescription::elementinfo(), integration::gausspoints(), lists::listgetreal(), normal(), and elementdescription::normalvector().

Here is the call graph for this function:

recursive subroutine elementutils::freematrix ( type(matrix_t), pointer  Matrix)

Frees structures of the matrix.

References directsolve::directsolver(), and solver().

Referenced by mainutils::addequationbasics(), addsolvers(), multigrid::amgsolve(), eigensolve::arpackdampedeigensolve(), bsolver(), multigrid::cmgsolve(), computestress(), eliminatedirichlet(), eliminateperiodic(), fetisolve::fetiproject(), fetisolve::fetisendrecvif(), freemodel(), freesolver(), modeldescription::getnodalelementsize(), magnetodynamics2d(), magnetodynamics2dharmonic(), solverutils::mortarrobinsolver(), radiationfactors(), adaptive::refinemesh(), meshutils::releasemesh(), solverutils::solvesystem(), and solverutils::solvewithlinearrestriction().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elementutils::initializematrix ( type(matrix_t), pointer  Matrix,
integer  n,
type(listmatrix_t), dimension(:)  List,
integer, dimension(:)  Reorder,
integer, dimension(:)  InvInitialReorder,
integer  DOFs 
)

Initialize a CRS format matrix to the effect that it will be ready to accept values when CRS_GlueLocalMatrix is called (build up the index tables of a CRS format matrix)....

References crsmatrix::crs_sortmatrix().

Referenced by creatematrix().

Here is the call graph for this function:

Here is the caller graph for this function:

real(kind=dp) function elementutils::lineintegrate ( type(model_t)  Model,
type(element_t), target  LineElement,
real(kind=dp), dimension(:,:), target  LineElementNodes,
character(len=*)  IntegrandFunctionName,
logical  QuadrantTreeExists,
type(quadrant_t), pointer  RootQuadrant 
)

Integrates the normal component of a user-defined vector function over a specified line element.

Deprecated:
Is this used for something?

References coordinatesystems::coordinatesqrtmetric(), coordinatesystems::coordinatesystemdimension(), elementdescription::elementinfo(), interpolation::findleafelements(), integration::gausspoints(), elementdescription::interpolateinelement(), lists::listgetreal(), normal(), elementdescription::normalvector(), and interpolation::pointinelement().

Here is the call graph for this function:

subroutine elementutils::makelistmatrix ( type(model_t)  Model,
type(solver_t)  Solver,
type(mesh_t)  Mesh,
type(listmatrix_t), dimension(:), pointer  List,
integer, dimension(:), optional  Reorder,
integer  LocalNodes,
character(len=*), optional  Equation,
logical, optional  DGSolver,
logical, optional  GlobalBubbles 
)

Create a list matrix given the mesh, the active domains and the elementtype related to the solver. The list matrix is flexible since it can account for any entries. Also constraints and periodic BCs may give rise to entries in the list matrix topology.

References lists::checkelementequation(), gebhardtfactors(), listmatrix::list_allocatematrix(), listmatrix::list_getmatrixindex(), lists::listgetlogical(), and solver().

Referenced by creatematrix().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elementutils::rotatematrix ( real(kind=dp), dimension(:,:)  Matrix,
real(kind=dp), dimension(:)  Vector,
integer  n,
integer  DIM,
integer  DOFs,
integer, dimension(:)  NodeIndexes,
real(kind=dp), dimension(:,:), pointer  Normals,
real(kind=dp), dimension(:,:), pointer  Tangent1,
real(kind=dp), dimension(:,:), pointer  Tangent2 
)

Referenced by solverutils::updateglobalequations(), and solverutils::updateglobalforce().

Here is the caller graph for this function:

real(kind=dp) function, dimension(3) elementutils::surfaceintegrate ( type(model_t)  Model,
integer, dimension(:)  ElementList,
character(len=*)  IntegrandFunctionName 
)

Integrates A user-defined vector function over the specified boundary elements.

Deprecated:
Is this used for something?
Parameters
modelAll model information (mesh, materials, BCs, etc...)
elementlistList of elements that belong to the integration boundary
integrandfunctionnameName the function has in the .sif file

References coordinatesystems::coordinatesqrtmetric(), coordinatesystems::coordinatesystemdimension(), elementdescription::elementinfo(), integration::gausspoints(), and lists::listgetreal().

Here is the call graph for this function:

subroutine elementutils::tangentdirections ( real(kind=dp), dimension(3)  Normal,
real(kind=dp), dimension(3)  Tangent1,
real(kind=dp), dimension(3)  Tangent2 
)

Given the normal return the tangent directions. The First tangent direction will always be on the xy-plane if also the normal is in the xy-plane.

References normal().

Referenced by solverutils::averageboundarynormals(), meshutils::clusternodesbydirection(), meshutils::findrigidbodyfixingnodes(), helmholtz_smoluchowski_comp(), navierstokesboundary(), navierstokes::navierstokesboundary(), navierstokescylindrical::navierstokescylindricalboundary(), navierstokes::navierstokeswalllaw(), particledynamicsstuff::particleparticlecontact(), setinitialconditions(), slipmatrix(), stresslocal::stressboundary(), velocityslipmatrix(), and navierstokes::vmswalls().

Here is the call graph for this function:

Here is the caller graph for this function:

real(kind=dp) function elementutils::volumeintegrate ( type(model_t)  Model,
integer, dimension(:)  ElementList,
character(len=*)  IntegrandFunctionName 
)

Integrates a user-defined function over the specified bulk elements.

Deprecated:
Is this used for something?
Parameters
modelAll model information (mesh, materials, BCs, etc...)
elementlistList of elements that belong to the integration volume
integrandfunctionnameName the function has in the .sif file

References coordinatesystems::coordinatesqrtmetric(), elementdescription::elementinfo(), integration::gausspoints(), and lists::listgetreal().

Referenced by advectiondiffusionsolver().

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this module was generated from the following file: