Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
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) |
subroutine statelecsolver::boundaryassembly | ( | ) |
References defutils::activeboundaryelement(), crsmatrix::crs_sortmatrix(), defutils::defaultdirichletbcs(), defutils::defaultfinishassembly(), messages::fatal(), defutils::getbc(), defutils::getboundaryelement(), defutils::getcreal(), defutils::getelementnofdofs(), defutils::getelementnofnodes(), defutils::getnofboundaryelements(), defutils::getparentmatprop(), messages::info(), lists::listgetintegerarray(), lists::listgetlogical(), lists::listgetreal(), defutils::possiblefluxelement(), setpermutationboundaries(), solver(), and statelecboundary().
subroutine statelecsolver::bulkassembly | ( | ) |
References messages::fatal(), defutils::getactiveelement(), defutils::getelementnofdofs(), defutils::getelementnofnodes(), defutils::getlogical(), defutils::getnofactive(), defutils::getrealarray(), messages::info(), lists::listgetinteger(), lists::listgetreal(), lists::listgetrealarray(), solver(), stateleccompose(), and lists::variableget().
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().
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().
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().
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().
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().
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 | ||
) |
alpha | Coefficient of the Robin BC: g = alpha * u + beta |
beta | Coefficient of the Robin BC: g = alpha * u + beta |
References coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), normal(), and elementdescription::normalvector().
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().
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().