Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
Data Types | |
module | solverutils |
Functions/Subroutines | |
subroutine | checkntelement (n, elno) |
subroutine | setelementvalues (n, elno) |
subroutine | setpointvalues (n) |
subroutine | setlimitervalues (n) |
subroutine | setperiodicboundariespass1 (Model, A, b, Name, DOF, NDOFs, Perm, This, Done) |
subroutine | setperiodicboundariespass2 (Model, A, b, Name, DOF, NDOFs, Perm, This, Done) |
subroutine | setelementloads (n) |
subroutine | setpointloads (n) |
subroutine | integmassconsistent (j, n, nrm) |
subroutine setdirichletboundaries::checkntelement | ( | integer | n, |
integer | elno | ||
) |
References coordinatesystems::coordinatesystemdimension(), lists::listcheckpresent(), lists::listgetlogical(), lists::listgetreal(), and solverutils::rotatentsystem().
Referenced by solverutils::setdirichletboundaries().
subroutine averageboundarynormals::integmassconsistent | ( | integer | j, |
integer | n, | ||
real(kind=dp), dimension(:) | nrm | ||
) |
References elementdescription::elementinfo(), integration::gausspoints(), and elementdescription::normalvector().
Referenced by solverutils::averageboundarynormals().
subroutine setnodalloads::setelementloads | ( | integer | n) |
References lists::listgetreal(), and lists::listgetrealarray().
Referenced by solverutils::setnodalloads().
subroutine setdirichletboundaries::setelementvalues | ( | integer | n, |
integer | elno | ||
) |
Set values related to a specific boundary or bulk element.
References coordinatesystems::coordinatesystemdimension(), crsmatrix::crs_setsymmdirichlet(), lists::listgetlogical(), lists::listgetreal(), lists::listgetrealarray(), solverutils::rotatentsystem(), bandmatrix::sband_setdirichlet(), solverutils::setmatrixelement(), and solverutils::zerorow().
Referenced by solverutils::setdirichletboundaries().
subroutine setdirichletboundaries::setlimitervalues | ( | integer | n) |
Set values related to upper and lower limiters.
References crsmatrix::crs_setsymmdirichlet(), lists::listgetreal(), bandmatrix::sband_setdirichlet(), solverutils::setmatrixelement(), and solverutils::zerorow().
Referenced by solverutils::setdirichletboundaries().
subroutine setdirichletboundaries::setperiodicboundariespass1 | ( | type(model_t) | Model, |
type(matrix_t), pointer | A, | ||
real(kind=dp), dimension(:) | b, | ||
character(len=*) | Name, | ||
integer | DOF, | ||
integer | NDOFs, | ||
integer, dimension(:) | Perm, | ||
integer | This, | ||
logical, dimension(:) | Done | ||
) |
At first pass sum together the rows related to the periodic dofs.
model | The current model structure |
a | The global matrix |
b | The global RHS vector |
name | name of the dof to be set |
done | Has the node already been done. |
this | Number of the current boundary. |
dof | The order number of the dof |
ndofs | the total number of DOFs for this equation |
perm | The node reordering info, this has been generated at the beginning of the simulation for bandwidth optimization |
References solverutils::addtomatrixelement(), generalutils::allocatematrix(), crsmatrix::crs_sortmatrix(), g(), lists::listgetconstreal(), lists::listgetlogical(), solverutils::setmatrixelement(), lists::variableget(), and solverutils::zerorow().
Referenced by solverutils::setdirichletboundaries().
subroutine setdirichletboundaries::setperiodicboundariespass2 | ( | type(model_t) | Model, |
type(matrix_t), pointer | A, | ||
real(kind=dp), dimension(:) | b, | ||
character(len=*) | Name, | ||
integer | DOF, | ||
integer | NDOFs, | ||
integer, dimension(:) | Perm, | ||
integer | This, | ||
logical, dimension(:) | Done | ||
) |
At second pass add the [...1 .. -1 ...] row structure that results to the equality of the periodic dofs.
model | The current model structure |
a | The global matrix |
b | The global RHS vector |
name | name of the dof to be set |
done | Has the node already been done. |
this | Number of the current boundary. |
dof | The order number of the dof |
ndofs | the total number of DOFs for this equation |
perm | The node reordering info, this has been generated at the |
References solverutils::addtomatrixelement(), lists::listgetcreal(), lists::listgetlogical(), and solverutils::zerorow().
Referenced by solverutils::setdirichletboundaries().
subroutine setnodalloads::setpointloads | ( | integer | n) |
References lists::listgetreal(), lists::listgetrealarray(), and messages::warn().
Referenced by solverutils::setnodalloads().
subroutine setdirichletboundaries::setpointvalues | ( | integer | n) |
Set values related to individual points.
References crsmatrix::crs_setsymmdirichlet(), lists::listgetreal(), lists::listgetrealarray(), bandmatrix::sband_setdirichlet(), solverutils::setmatrixelement(), messages::warn(), and solverutils::zerorow().
Referenced by solverutils::setdirichletboundaries().