Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
 All Classes Files Functions Variables Typedefs Macros Groups Pages
LevelSet.src File Reference

Functions/Subroutines

subroutine levelsetsolver (Model, Solver, Timestep, TransientSimulation)
 
subroutine localmatrix (MassMatrix, StiffMatrix, ForceVector, Surf, Flux, NodalVelo, Stabilize, Element, n, Nodes)
 
subroutine levelsetdistance (Model, Solver, Timestep, TransientSimulation)
 
subroutine extractzerolevel ()
 
subroutine triangleisolineweights (NX, NY, NZ, S, w0, w1, Found)
 
real(kind=dp) function computedistance (xp, yp, zp)
 
real(kind=dp) function computedistancewithdirection (xp, yp, zp, prevdist)
 
subroutine levelsetintegrate (Model, Solver, Timestep, TransientSimulation)
 
subroutine heavisideintegrate (Surf, Element, n, Nodes, Alpha, Volume, Area, Moment)
 
subroutine levelsetcurvature (Model, Solver, Timestep, TransientSimulation)
 
subroutine localmatrix (StiffMatrix, ForceVector, Surf, Element, n, Nodes)
 
subroutine localboundary (BoundaryMatrix, BoundaryVector, Surf, Element, Parent, n, pn, ElementNodes, ParentNodes)
 
real(kind=dp) function levelsettimestep (Model)
 

Function/Subroutine Documentation

real(kind=dp) function levelsetdistance::computedistance ( real(kind=dp)  xp,
real(kind=dp)  yp,
real(kind=dp)  zp 
)

Computes the distance from the given zero levelset given by ZeroNodes.

Referenced by levelsetdistance().

Here is the caller graph for this function:

real(kind=dp) function levelsetdistance::computedistancewithdirection ( real(kind=dp)  xp,
real(kind=dp)  yp,
real(kind=dp)  zp,
real(kind=dp)  prevdist 
)

Computes the signed distance from the given zero levelset given by ZeroNodes.

Referenced by levelsetdistance().

Here is the caller graph for this function:

subroutine levelsetdistance::extractzerolevel ( )

Extract the zero levelset as defined by the levelset function.

References lists::listgetinteger(), lists::listgetlogical(), lists::listgetreal(), lists::listgetstring(), nx, ny, solver(), triangleisolineweights(), and messages::warn().

Referenced by levelsetdistance().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine levelsetintegrate::heavisideintegrate ( real(kind=dp), dimension(:)  Surf,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes,
real(kind=dp)  Alpha,
real(kind=dp)  Volume,
real(kind=dp)  Area,
real(kind=dp), dimension(3)  Moment 
)

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), and integration::gausspoints().

Referenced by levelsetintegrate().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine levelsetcurvature::localboundary ( real(kind=dp), dimension(:,:)  BoundaryMatrix,
real(kind=dp), dimension(:)  BoundaryVector,
real(kind=dp), dimension(:)  Surf,
type(element_t), pointer  Element,
type(element_t), pointer  Parent,
integer  n,
integer  pn,
type(nodes_t)  ElementNodes,
type(nodes_t)  ParentNodes 
)

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), normal(), and elementdescription::normalvector().

Referenced by defutils::getboundaryindexesgl(), levelsetcurvature(), and reynoldssolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine levelsetsolver::localmatrix ( real(kind=dp), dimension(:,:)  MassMatrix,
real(kind=dp), dimension(:,:)  StiffMatrix,
real(kind=dp), dimension(:)  ForceVector,
real(kind=dp), dimension(:)  Surf,
real(kind=dp), dimension(:)  Flux,
real(kind=dp), dimension(:,:)  NodalVelo,
logical  Stabilize,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes 
)

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

Here is the call graph for this function:

subroutine levelsetcurvature::localmatrix ( real(kind=dp), dimension(:,:)  StiffMatrix,
real(kind=dp), dimension(:)  ForceVector,
real(kind=dp), dimension(:)  Surf,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes 
)

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

Here is the call graph for this function:

subroutine levelsetdistance::triangleisolineweights ( real(kind=dp), dimension(:)  NX,
real(kind=dp), dimension(:)  NY,
real(kind=dp), dimension(:)  NZ,
real(kind=dp), dimension(:)  S,
real(kind=dp), dimension(3)  w0,
real(kind=dp), dimension(3)  w1,
logical  Found 
)

This subroutine extracts the zero line of one triangular element.

Referenced by extractzerolevel().

Here is the caller graph for this function: