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

Functions/Subroutines

subroutine statelecsolver_init (Model, Solver, dt, TransientSimulation)
 
subroutine statelecsolver (Model, Solver, dt, TransientSimulation)
 
subroutine bulkassembly ()
 
subroutine boundaryassembly ()
 
subroutine totalchargebc (F, Element, n, Nodes)
 
subroutine generalelectricflux (Mesh, Potential)
 
subroutine stateleccompose (StiffMatrix, Force, PiezoMaterial, PiezoCoeff, Permittivity, Load, Element, n, ntot, Nodes, Displacement)
 
subroutine setpermutationboundaries (Model, StiffMatrix, ForceVector, Name, Perm, Permutation)
 
subroutine statelecboundary (BoundaryMatrix, BoundaryVector, LoadVector, Alpha, Beta, OpenBC, Permittivity, Element, n, Nodes)
 
real(kind=dp) function,
dimension(2) 
electricboundaryresidual (Model, Edge, Mesh, Quant, Perm, Gnorm)
 
real(kind=dp) function,
dimension(2) 
electricedgeresidual (Model, Edge, Mesh, Quant, Perm)
 
real(kind=dp) function,
dimension(2) 
electricinsideresidual (Model, Element, Mesh, Quant, Perm, Fnorm)
 

Function/Subroutine Documentation

subroutine statelecsolver::bulkassembly ( )
real(kind=dp) function, dimension(2) electricboundaryresidual ( type(model_t)  Model,
type( element_t ), pointer  Edge,
type( mesh_t ), pointer  Mesh,
real(kind=dp), dimension(:)  Quant,
integer, dimension(:)  Perm,
real(kind=dp)  Gnorm 
)

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetreal(), lists::listgetrealarray(), normal(), elementdescription::normalvector(), and potential().

Referenced by statelecsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

real(kind=dp) function, dimension(2) electricedgeresidual ( type(model_t)  Model,
type( element_t ), pointer  Edge,
type( mesh_t ), pointer  Mesh,
real(kind=dp), dimension(:)  Quant,
integer, dimension(:)  Perm 
)

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), lists::listgetinteger(), lists::listgetrealarray(), normal(), elementdescription::normalvector(), and potential().

Referenced by statelecsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

real(kind=dp) function, dimension(2) electricinsideresidual ( type(model_t)  Model,
type( element_t ), pointer  Element,
type( mesh_t ), pointer  Mesh,
real(kind=dp), dimension(:)  Quant,
integer, dimension(:)  Perm,
real(kind=dp)  Fnorm 
)

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), lists::listgetinteger(), lists::listgetreal(), lists::listgetrealarray(), and potential().

Referenced by statelecsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine statelecsolver::generalelectricflux ( type(mesh_t)  Mesh,
real(kind=dp), dimension(:)  Potential 
)

Compute the Electric Flux, Electric Field and Electric Energy at model nodes.

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), defutils::getactiveelement(), defutils::getelementdofs(), defutils::getelementnofnodes(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetrealarray(), potential(), and solver().

Here is the call graph for this function:

subroutine statelecsolver::setpermutationboundaries ( type(model_t)  Model,
type(matrix_t), pointer  StiffMatrix,
real(kind=dp), dimension(:)  ForceVector,
character(len=*)  Name,
integer, dimension(:)  Perm,
integer  Permutation 
)

To compute the capacitance matrix for m bodies, also m permutations are required. This subroutine sets at permutation i, the body i to 1, and all else to 0.

References lists::listaddconstreal(), and lists::listgetinteger().

Referenced by boundaryassembly().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine statelecsolver::statelecboundary ( real(kind=dp), dimension(:,:)  BoundaryMatrix,
real(kind=dp), dimension(:)  BoundaryVector,
real(kind=dp), dimension(:)  LoadVector,
real(kind=dp), dimension(:)  Alpha,
real(kind=dp), dimension(:)  Beta,
logical  OpenBC,
real(kind=dp), dimension(:)  Permittivity,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes 
)
Parameters
alphaCoefficient of the Robin BC: g = alpha * u + beta
betaCoefficient of the Robin BC: g = alpha * u + beta

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

Here is the call graph for this function:

subroutine statelecsolver::stateleccompose ( real(kind=dp), dimension(:,:)  StiffMatrix,
real(kind=dp), dimension(:)  Force,
logical  PiezoMaterial,
real(kind=dp), dimension(:,:,:)  PiezoCoeff,
real(kind=dp), dimension(:,:,:)  Permittivity,
real(kind=dp), dimension(:)  Load,
type(element_t), pointer  Element,
integer  n,
integer  ntot,
type(nodes_t)  Nodes,
real(kind=dp), dimension(:,:)  Displacement 
)

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

Referenced by bulkassembly().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine statelecsolver::totalchargebc ( real(kind=dp), dimension(:)  F,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes 
)

References elementdescription::elementinfo(), integration::gausspoints(), defutils::getelementnodes(), defutils::getparentuvw(), normal(), and elementdescription::normalvector().

Here is the call graph for this function: