FEDEM Solver  R8.0
Source code of the dynamics solver
Modules | Functions/Subroutines | Variables
solverRoutinesModule.f90 File Reference

Generic solver utilities. More...

Modules

module  solverroutinesmodule
 Module with some generic solver utilities.
 

Functions/Subroutines

subroutine solverroutinesmodule::calculateiterationnorms (sam, sys, iter, ierr)
 Calculates all iteration norms defined in the system. More...
 
subroutine solverroutinesmodule::calculateiterationtolerances (sam, sys)
 Calculates all iteration tolerances defined in the system. More...
 
subroutine solverroutinesmodule::iterationaccelerator (iter, res, del, ierr)
 Accelerates the solution increment in case of line search. More...
 
subroutine solverroutinesmodule::savestep (sys, mech, ctrl, ierr, checkTimeStep)
 Saves response variables of current time step to file. More...
 
logical function savenext (lastTime, saveSkip)
 Convenience function checking if next step should be saved or not. More...
 
subroutine solverroutinesmodule::terminatestep (sam, sys, mech, ctrl, linearStatic, finalStep, ierr)
 Terminates a time step by doing some final calculations. More...
 
subroutine solverroutinesmodule::updatepreviousstate (sam, sys, mech, ierr)
 Updates the previous state variables in the mechanism objects. More...
 
subroutine solverroutinesmodule::restorelaststep (sam, sys, mech)
 Restores all state variables from the last converged time step. More...
 
subroutine solverroutinesmodule::clearvelacc (triads, joints, notify)
 Clears velocity and acceleration variables in the triads and joints. More...
 
elemental logical function nonzero (value)
 Checks if a value is nonzero or not with some tolerance. More...
 
subroutine notifyclear (objType, objId, var)
 Notifies on clearing velocity or acceleration variables. More...
 
subroutine solverroutinesmodule::closesolverdb (mech, anyRes, ierr)
 Closes all solver data base files before program termination. More...
 
subroutine solverroutinesmodule::printmassdistribution (sups, masses, tires, elms, gravity, totMass, lpu)
 Prints a summary of the mass distribution to the res-file. More...
 
real(dp) function getmass (mass, gdir)
 Extracts equivalent mass in a given direction for a mass element. More...
 
subroutine mat2tensor (M, T)
 Converts a 3x3 matrix into a second-order tensor. More...
 
subroutine getassmass (assemb, mass, CG)
 Sums up masses and CG for sub-assemblies. More...
 
subroutine solverroutinesmodule::printresults (time, triads, sups, iprint, lpu)
 Prints basic simulation variables to the res-file. More...
 
logical function printthis (tId)
 Checks if a given triad should be printed or not. More...
 
subroutine solverroutinesmodule::printconvergence (lpu, fileFormat, iStep, iter, tanUpdate, time, timeStep, del, res, convData, sam, mech)
 Prints convergence information to the res-file. More...
 
subroutine writenormheadings (norms)
 Writes the heading of the iteration norms. More...
 
subroutine writenormvalues (norms)
 Writes the iteration norms values. More...
 

Variables

integer(ik), dimension(:), allocatable, save solverroutinesmodule::meqerr
 All singular equations found. More...
 
real(dp), dimension(4), save, private solverroutinesmodule::lastime = -1.0e99_dp
 Previous save times. More...
 

Detailed Description

Generic solver utilities.

Function/Subroutine Documentation

◆ getassmass()

subroutine printmassdistribution::getassmass ( character(len=*), intent(in)  assemb,
real(dp), intent(in)  mass,
real(dp), dimension(3), intent(in)  CG 
)

Sums up masses and CG for sub-assemblies.

◆ getmass()

real(dp) function printmassdistribution::getmass ( type(masstype), intent(in)  mass,
real(dp), dimension(3), intent(in)  gdir 
)

Extracts equivalent mass in a given direction for a mass element.

◆ mat2tensor()

subroutine printmassdistribution::mat2tensor ( real(dp), dimension(3,3), intent(in)  M,
real(dp), dimension(6), intent(out)  T 
)

Converts a 3x3 matrix into a second-order tensor.

The matrix is assumed symmetric. The tensor storage scheme is: T11, T22, T33, T12, T13, T23.

See also
FFaTensor3.

◆ nonzero()

elemental logical function clearvelacc::nonzero ( real(dp), intent(in)  value)

Checks if a value is nonzero or not with some tolerance.

◆ notifyclear()

subroutine clearvelacc::notifyclear ( character(len=*), intent(in)  objType,
type(idtype), intent(in)  objId,
character(len=*), intent(in)  var 
)

Notifies on clearing velocity or acceleration variables.

◆ printthis()

logical function printresults::printthis ( type(idtype), intent(in)  tId)

Checks if a given triad should be printed or not.

◆ savenext()

logical function savestep::savenext ( real(dp), intent(inout)  lastTime,
real(dp), intent(in)  saveSkip 
)

Convenience function checking if next step should be saved or not.

◆ writenormheadings()

subroutine printconvergence::writenormheadings ( type(testitemtype), dimension(:), intent(in)  norms)

Writes the heading of the iteration norms.

◆ writenormvalues()

subroutine printconvergence::writenormvalues ( type(testitemtype), dimension(:), intent(in)  norms)

Writes the iteration norms values.