Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
Data Types | |
interface | LoadFunction |
Public Attributes | |
character(len=1024) | includepath = ' ' |
character(len=1024) | outputpath = ' ' |
character(len=1024) | simulationid = ' ' |
integer, parameter | posunit = 32 |
integer, parameter | outputunit = 31 |
integer, parameter | restartunit = 30 |
integer, parameter | postfileunit = 29 |
integer, parameter | infileunit = 28 |
integer(kind=addrint) function | getprocaddr (str, Quiet, Abort) |
subroutine | loadincludefile (Model, InFileUnit, FileName, MeshDir, MeshName, ScanOnly) |
logical function | reloadinputfile (Model) |
recursive subroutine | loadinputfile (Model, InFileUnit, FileName, MeshDir, MeshName, BaseLoad, ScanOnly, Runc) |
subroutine | loadgebhardtfactors (Mesh, FileName) |
subroutine | setcoordinatesystem (Model) |
type(model_t) function, pointer | loadmodel (ModelName, BoundariesOnly, numprocs, mype) |
integer function | saveresult (Filename, Mesh, Time, SimulationTime, Binary, SaveAll, FreeSurface) |
subroutine | loadrestartfile (RestartFile, TimeCount, Mesh, Continuous, EOF) |
subroutine | writepostfile (PostFile, ResultFile, Model, TimeCount, AppendFlag) |
subroutine | getnodalelementsize (Model, expo, noweight, h) |
subroutine modeldescription::getnodalelementsize | ( | type(model_t) | Model, |
real(kind=dp) | expo, | ||
logical | noweight, | ||
real(kind=dp), dimension(:), pointer | h | ||
) |
Solve the ElementSize equation using Galerkin discretization where at each integration point the element size is the size of the element in question. The nodal elementsize may be used when defining the new mesh density after inheritance.
References elementutils::creatematrix(), crsmatrix::crs_gluelocalmatrix(), messages::fatal(), elementutils::freematrix(), messages::info(), itersolve::itersolver(), lists::listaddconstreal(), lists::listaddinteger(), lists::listaddlogical(), lists::listaddstring(), localmatrix(), parallelutils::parallelinitmatrix(), parallelutils::paralleliter(), solver(), lists::variableadd(), and lists::variableget().
Referenced by loadmodel().
integer(kind=addrint) function modeldescription::getprocaddr | ( | character(len=*) | str, |
logical, optional | Quiet, | ||
logical, optional | Abort | ||
) |
Loads a dynamic object (e.g. solver or user defined function) and returns its address in order to be able to call it.
References modeldescription::LoadFunction::loadfunction().
Referenced by mainutils::addequationbasics(), mainutils::blocksystemassembly(), defutils::defaultupdateequationsr(), materialmodels::effectiveconductivity(), materialmodels::effectiveviscosity(), elmersolver(), loadmodel(), and sectioncontents().
subroutine modeldescription::loadgebhardtfactors | ( | type(mesh_t), pointer | Mesh, |
character(len=*) | FileName | ||
) |
Loads the Gebhardt factors needed in the radiation heat transfer. This may be done externally only when the emissivities are constant. Hence there is a internal computation of Gebhardt factors that is highly optimized.
References messages::fatal(), and messages::info().
Referenced by remesh().
subroutine modeldescription::loadincludefile | ( | type(model_t) | Model, |
integer | InFileUnit, | ||
character(len=*) | FileName, | ||
character(len=*) | MeshDir, | ||
character(len=*) | MeshName, | ||
logical | ScanOnly | ||
) |
References generalutils::filenamequalified(), and loadinputfile().
Referenced by loadinputfile().
recursive subroutine modeldescription::loadinputfile | ( | type(model_t) | Model, |
integer | InFileUnit, | ||
character(len=*) | FileName, | ||
character(len=*) | MeshDir, | ||
character(len=*) | MeshName, | ||
logical | BaseLoad, | ||
logical | ScanOnly, | ||
logical, optional | Runc | ||
) |
Subroutine for loading the fields from the input file. This may be used multiple times. On first calling the ScanOnly should be true to allow only the reading of number of fields. Performs also some simple sanity tests for the lists.
References checkkeyword(), messages::fatal(), lists::listaddinteger(), lists::listaddintegerarray(), lists::listaddstring(), loadincludefile(), generalutils::readandtrim(), sectioncontents(), and messages::warn().
Referenced by loadincludefile(), loadmodel(), reloadinput(), and reloadinputfile().
type(model_t) function, pointer modeldescription::loadmodel | ( | character(len=*) | ModelName, |
logical | BoundariesOnly, | ||
integer, optional | numprocs, | ||
integer, optional | mype | ||
) |
Function to read the complete Elmer model: sif file and mesh files.
References getnodalelementsize(), getprocaddr(), messages::info(), initializeoutputlevel(), lists::listcheckpresent(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), loadinputfile(), meshutils::loadmesh(), meshutils::meshstabparams(), meshutils::releasemesh(), setcoordinatesystem(), solver(), and meshutils::splitmeshequal().
Referenced by elmersolver(), gebhardtfactors(), resulttopost(), resulttoresult(), and viewfactors().
subroutine modeldescription::loadrestartfile | ( | character(len=*) | RestartFile, |
integer | TimeCount, | ||
type(mesh_t), pointer | Mesh, | ||
logical, optional | Continuous, | ||
logical, optional | EOF | ||
) |
Loads the result file that has been saved by an earlier Elmer simulation. This makes it possible to restart the simulation.
References coordinatesystems::coordinatesystemdimension(), messages::error(), generalutils::filenamequalified(), getposition(), getvalue(), messages::info(), invalidatevariable(), lists::listgetstring(), generalutils::readandtrim(), readperm(), readtime(), readvariablename(), solver(), unreadline(), lists::variableadd(), lists::variableget(), and messages::warn().
Referenced by reloadsolution(), restart(), and resulttoresult().
logical function modeldescription::reloadinputfile | ( | type(model_t) | Model) |
This subroutine is used to reload input from the file to allow multiple parameter sets within the same simulation.
References loadinputfile().
Referenced by elmersolver().
integer function modeldescription::saveresult | ( | character(len=*) | Filename, |
type(mesh_t), pointer | Mesh, | ||
integer | Time, | ||
real(kind=dp) | SimulationTime, | ||
logical | Binary, | ||
logical | SaveAll, | ||
logical, optional | FreeSurface | ||
) |
Save fields in a file that may be used in restarting of Elmer simulation. The data may be saved either in ascii and binary formats.
References appendopen(), generalutils::filenamequalified(), generalutils::formatdate(), initializefile(), lists::listgetlogical(), freesurface::moveboundary(), switchtobinary(), writeperm(), writereal(), writetime(), and writevarname().
Referenced by savecurrent().
subroutine modeldescription::setcoordinatesystem | ( | type(model_t), pointer | Model) |
Figure out the requested coordinate system.
References messages::fatal(), and lists::listgetstring().
Referenced by loadmodel().
subroutine modeldescription::writepostfile | ( | character(len=*) | PostFile, |
character(len=*) | ResultFile, | ||
type(model_t), pointer | Model, | ||
integer | TimeCount, | ||
logical, optional | AppendFlag | ||
) |
Writes data in ElmerPost format.
References sparitersolve::dummy(), generalutils::filenamequalified(), generalutils::formatdate(), messages::info(), lists::listgetlogical(), lists::listgetstring(), freesurface::moveboundary(), generalutils::readandtrim(), and lists::variableget().
Referenced by resulttopost(), and savetopost().
character(len=1024) modeldescription::includepath = ' ' |
integer, parameter modeldescription::infileunit = 28 |
character(len=1024) modeldescription::outputpath = ' ' |
integer, parameter modeldescription::outputunit = 31 |
integer, parameter modeldescription::postfileunit = 29 |
integer, parameter modeldescription::posunit = 32 |
integer, parameter modeldescription::restartunit = 30 |
character(len=1024) modeldescription::simulationid = ' ' |