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

Linear multi-point constraint handling. More...

Modules

module  rigidmodule
 Module with subroutines for setting up linear multi-point constraints.
 

Functions/Subroutines

subroutine, public rigidmodule::multipointconstraints (MINEX, MADOF, MPAM, MPMNPC, MMNPC, TXC, TYC, TZC, MPAR, MSC, MPMCEQ, MMCEQ, TTCC, IPSW, LPU, IERR)
 Generates constraint equation arrays in the SAM datastructure. More...
 
subroutine explconstreqn (nedof, indC, weight, omega)
 Copies coefficients of an explicitly defined constraint equation. More...
 
subroutine, public rigidmodule::checkrgdelements (mprgd, mprbar, mpam, meldep, minex, mpmnpc, mmnpc, nodeStatus, numErr)
 Checks the topology of the RGD elements. More...
 
subroutine, public rigidmodule::checkrbarelements (mprbar, mprgd, minex, mpmnpc, mmnpc, madof, msc, nodeStatus, lpu, numErr)
 Checks consistency of RBAR elements. More...
 
subroutine, public rigidmodule::rigid3d (mprgd, mprbar, meldep, minex, madof, mpmnpc, mmnpc, mpmcex, mmcex, txc, tyc, tzc, ttccx, mpar, msc, mpmceq, mmceq, ttcc, ipsw, lpu, ierr)
 Generates constraint equation arrays in the SAM datastructure. More...
 
recursive integer function calcdepth (ep)
 Calculates chain depth of an RGD element based on array MELDEP. More...
 
subroutine chkandincindepdofs (inod, kind, dofs, iel, ierr)
 Checks for illegal status codes on rigid independent DOFs. More...
 
subroutine chkandincdepdofs (inod, dofs, iel, ierr)
 Checks for illegal status codes on rigid dependent DOFs. More...
 
subroutine rigidmodule::rgdce (mprgd, elDepth, meldep, msc, mpmcex, mmcex, ttccx, mpmceq, mmceq, mpmnpc, mmnpc, ttcc, madof, txc, tyc, tzc, minex, iceq, ipcur, lpu, ierr)
 Construct the constraint equations for RGD (or RBE2) elements. More...
 
subroutine rigidmodule::rbarce (mprbar, msc, mpmcex, mmcex, ttccx, mpmceq, mmceq, mpmnpc, mmnpc, ttcc, madof, txc, tyc, tzc, minex, iceq, ipcur, lpu, ierr)
 Constructs the constraint equations for RBAR elements. More...
 
subroutine rigidmodule::defineconstrainteqn (iDofS, iDofM, C, mpmcex, mmcex, ttccx, msc, mpmceq, mmceq, ttcc, iceq, ipcur, lpu, ierr)
 Establishes the constraint equation for a given dependent DOF. More...
 
subroutine rigidmodule::procdofcomp (dofNumbs, dofs, iel, lpu, ierr)
 Processes an m-set number of RGD and RBAR elements. More...
 
subroutine rigidmodule::procrbardef (rgdComp, d1, d2, d3, d4, iel, lpu, ierr)
 Processes the component definition of an RBAR element. More...
 

Variables

integer, parameter, public rigidmodule::krigid = 61
 Type id for rigid elements. More...
 
integer, parameter, public rigidmodule::krbar = 62
 Type id for rigid bars. More...
 
integer, parameter, public rigidmodule::kwavgm = 63
 Type id for constraint elements. More...
 

Detailed Description

Linear multi-point constraint handling.

Function/Subroutine Documentation

◆ calcdepth()

recursive integer function rigid3d::calcdepth ( integer, intent(in)  ep)

Calculates chain depth of an RGD element based on array MELDEP.

The function is invoked recursively until the end of a chain is detected. If RGD elements are connected in a loop, a negative value will be returned.

◆ chkandincdepdofs()

subroutine rigid3d::chkandincdepdofs ( integer, intent(in)  inod,
logical, dimension(6), intent(in)  dofs,
integer, intent(in)  iel,
integer, intent(out)  ierr 
)
private

Checks for illegal status codes on rigid dependent DOFs.

◆ chkandincindepdofs()

subroutine rigid3d::chkandincindepdofs ( integer, intent(in)  inod,
integer, intent(in)  kind,
logical, dimension(6), intent(in)  dofs,
integer, intent(in)  iel,
integer, intent(out)  ierr 
)
private

Checks for illegal status codes on rigid independent DOFs.

◆ explconstreqn()

subroutine multipointconstraints::explconstreqn ( integer, intent(in)  nedof,
integer, intent(in)  indC,
real(dp), dimension(:), intent(in)  weight,
real(dp), dimension(:), intent(out)  omega 
)

Copies coefficients of an explicitly defined constraint equation.

Assuming here that all independent nodes have six DOFs. See also FFlSesamReader::readLinearDependencies(), where the weight matrix is populated from the SESAM BLDEP records.