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

Model data and driver routines for the FEDEM Dynamics Solver. More...

Modules

module  solvermodule
 Module with model containers and top lever driver subroutines.
 

Functions/Subroutines

subroutine, public solvermodule::initialize (chfsi, stateData, ndat, xinp, nxinp, ierr)
 Initializes the simulation model. More...
 
integer function numrecoveryparts (sups)
 Counts the number of superelements with recovery enabled. More...
 
subroutine, public solvermodule::softrestart (stateData, ndat, writeToRDB, ierr)
 Restarts a running simulation model from the provided state. More...
 
subroutine, public solvermodule::solvestep (iop, finalStep, finished, ierr)
 Solves for the next time step or iteration. More...
 
subroutine, public solvermodule::solverampup (iop, finished, ierr)
 Solves the ramp-up stage, if any. More...
 
subroutine, public solvermodule::solvemodes (nModes, eVal, eVec, dofOrder, useLaPack, ierr)
 Solves the eigenvalue system at current configuration. More...
 
subroutine, public solvermodule::finalize (ierr)
 Terminates the simulation and close the result database. More...
 
subroutine, public solvermodule::closeall (ierr, abortsub)
 Closes the result database files and any external modules used. More...
 
subroutine solvermodule::writeclosure (lcon, ierr)
 Outputs file and profiling information on program termination. More...
 
subroutine writefilename (chFile, chInfo)
 Writes a file name with description to the console file unit. More...
 
subroutine solvermodule::deallocateall ()
 Deallocates all dynamically allocated data. More...
 
logical function, public solvermodule::solvedynamic ()
 Returns whether the next step should be solved dynamically or not. More...
 
subroutine, public solvermodule::gettime (time, nextStep, ierr)
 Returns the simulation time of the current or next time step. More...
 
subroutine, public solvermodule::setnewtime (nextTime, ierr)
 Sets the time increment size to be used for next time step. More...
 
subroutine, public solvermodule::getengine (value, ierr, userId, tag, x)
 Returns the current value of the specified engine. More...
 
integer function, public solvermodule::getengineid (tag)
 Returns the user Id of the (first) engine with the specified tag. More...
 
subroutine, public solvermodule::getsystemmatrix (Nmat, iopM, ierr)
 Returns a system matrix as a full matrix. More...
 
subroutine, public solvermodule::getelementmatrix (Emat, baseId, iopM, ierr)
 Returns an element matrix for the specified superelement. More...
 
subroutine, public solvermodule::getrhsvector (Rvec, iopV, ierr)
 Returns the current right-hand-side vector of the linearized system. More...
 
subroutine, public solvermodule::setrhsvector (Rvec, addTo, keepDuringIterations, ierr)
 Sets/Updates current right-hand-side vector of linearized system. More...
 
subroutine, public solvermodule::systemsize (ndim, expanded)
 Returns the dimension of the linearized system. More...
 
subroutine, public solvermodule::solverparameters (dt, alpha, beta, gamma)
 Returns parameters for the Newmark/HHT-algorithm. More...
 
subroutine, public solvermodule::objectequations (baseId, meqn, ndof)
 Returns the equation numbers for the specified object. More...
 
subroutine, public solvermodule::objectstatevar (baseId, vars, nVar)
 Returns the current state variables for the specified object. More...
 
subroutine, public solvermodule::solvelineqsystem (rhs, nrhs, ierr)
 Solves current linear equation system for a set of right-hand-sides. More...
 
subroutine, public solvermodule::statevectorsize (transOnly, ndat)
 Returns the dimension of the state vector. More...
 
subroutine, public solvermodule::savestate (transOnly, stateData, ndat, ierr)
 Saves current state to an in-core array. More...
 
subroutine, public solvermodule::partstatevectorsize (iopS, bid, ndat)
 Returns the state vector dimension for a FE part. More...
 
subroutine, public solvermodule::savepartstate (iopS, bid, data, ndat, ierr)
 Saves the deformation/stress state of a FE part to an in-core array. More...
 
subroutine, public solvermodule::straingagessize (ndat)
 Returns the dimension of the strain gages vector. More...
 
subroutine, public solvermodule::saveinitgagestrains (iopS, data, ndat, ierr)
 Save/restores the initial gage strain to/from an in-core array. More...
 
subroutine, public solvermodule::computegagestrains (disp, gageIds, nDisp, nGage, eps, ierr)
 Computes strain tensor at gage positions for input displacements. More...
 
subroutine applysolutionvec (disp)
 Updates the configuration by applying given displacement vector. More...
 
subroutine getgagestrains (gageIds, epsil)
 Extracts gage strains from the strain rosette objects. More...
 
subroutine, public solvermodule::computebeamforces (disp, beamIds, nDofs, nBeams, forces, ierr)
 Computes beam sectional forces for input displacements. More...
 
subroutine forcesfromdisp (disp, ierr)
 Updates the configuration by applying given displacement vector. More...
 
subroutine getbeamsectionforces (beamIds, forces)
 Extracts sectional forces at triads from the beam elements. More...
 
subroutine, public solvermodule::computerelativedistance (disp, Ids, relDis, nDofs, nIds, ierr)
 Computes relative distance between 2 triads for input displacements. More...
 
subroutine, public solvermodule::computeresponsevars (disp, Ids, resp, nDofs, nIds, ierr)
 Computes response variables for input displacements. More...
 
subroutine variablesfromdisp (disp, ierr)
 Updates the configuration by applying given displacement vector. More...
 
subroutine, public solvermodule::getjointspringstiffness (sprCoeff, bid, ierr)
 Gets joint spring stiffness coefficients. More...
 

Variables

type(samtype), save, public solvermodule::sam
 Data for managing system matrix assembly. More...
 
type(modestype), save solvermodule::modes
 Data for eigenmodes. More...
 
type(systemtype), save, public solvermodule::sys
 System level model data. More...
 
type(controltype), save solvermodule::ctrl
 Control system data. More...
 
type(mechanismtype), save, public solvermodule::mech
 Mechanism objects of the model. More...
 
type(sysmatrixtype), save solvermodule::amat
 System matrix for external communication. More...
 
real(dp), dimension(:), allocatable, save solvermodule::extrhs
 Externally set load vector. More...
 
character(len=lfnam_p), save solvermodule::chmodel
 Model file name. More...
 
character(len=lfnam_p), dimension(5), save solvermodule::chnames
 Result database file names. More...
 
character(len=lfnam_p), save solvermodule::yamlfile
 Mode shape file name. More...
 
character(len=:), allocatable, save solvermodule::frsnames
 Recovery result files. More...
 

Detailed Description

Model data and driver routines for the FEDEM Dynamics Solver.

Function/Subroutine Documentation

◆ applysolutionvec()

subroutine computegagestrains::applysolutionvec ( real(dp), dimension(ndisp), intent(in)  disp)

Updates the configuration by applying given displacement vector.

◆ forcesfromdisp()

subroutine computebeamforces::forcesfromdisp ( real(dp), dimension(ndofs), intent(in)  disp,
integer, intent(inout)  ierr 
)

Updates the configuration by applying given displacement vector.

◆ getbeamsectionforces()

subroutine computebeamforces::getbeamsectionforces ( integer, dimension(3,nbeams), intent(in)  beamIds,
real(dp), dimension(6,nbeams), intent(out)  forces 
)

Extracts sectional forces at triads from the beam elements.

◆ getgagestrains()

subroutine computegagestrains::getgagestrains ( integer, dimension(ngage), intent(in)  gageIds,
real(dp), dimension(3,ngage), intent(out)  epsil 
)

Extracts gage strains from the strain rosette objects.

◆ numrecoveryparts()

integer function initialize::numrecoveryparts ( type(supeltype), dimension(:), intent(in)  sups)

Counts the number of superelements with recovery enabled.

◆ variablesfromdisp()

subroutine computeresponsevars::variablesfromdisp ( real(dp), dimension(ndofs), intent(in)  disp,
integer, intent(inout)  ierr 
)

Updates the configuration by applying given displacement vector.

◆ writefilename()

subroutine writeclosure::writefilename ( character(len=*), intent(in)  chFile,
character(len=*), intent(in)  chInfo 
)

Writes a file name with description to the console file unit.

Parameters
[in]chfileFile name
[in]chinfoFile description