44 :
Elem(uLabel, fOutput),
45 Genel(uLabel, pDO, fOutput),
109 std::ostream& out = OH.
Genels();
110 out << std::setw(8) <<
GetLabel() <<
" " <<
dRct << std::endl;
121 DEBUGCOUT(
"Entering GenelClamp::AssJac()" << std::endl);
130 WM.
PutItem(1, iRowIndex, iFirstReactionIndex, 1.);
131 WM.
PutItem(2, iFirstReactionIndex, iColIndex, 1.);
143 DEBUGCOUT(
"Entering GenelClamp::AssRes()" << std::endl);
151 dRct = XCurr(iFirstReactionIndex);
162 WorkVec.
PutItem(2, iFirstReactionIndex, dConstr);
184 connectedNodes.resize(1);
200 :
Elem(uLabel, fOutput),
201 Genel(uLabel, pDO, fOutput),
261 std::ostream& out = OH.
Genels();
262 out << std::setw(8) <<
GetLabel() <<
" " <<
dRct << std::endl;
273 DEBUGCOUT(
"Entering GenelDistance::AssJac()" << std::endl);
284 WM.
PutItem(1, iNode1RowIndex, iFirstReactionIndex, -1.);
285 WM.
PutItem(2, iNode2RowIndex, iFirstReactionIndex, 1.);
293 WM.
PutItem(3, iFirstReactionIndex, iNode1ColIndex, -1.);
295 WM.
PutItem(3, iFirstReactionIndex, iNode1ColIndex, -d);
299 WM.
PutItem(4, iFirstReactionIndex, iNode2ColIndex, 1.);
301 WM.
PutItem(4, iFirstReactionIndex, iNode2ColIndex, d);
314 DEBUGCOUT(
"Entering GenelDistance::AssRes()" << std::endl);
324 dRct = XCurr(iFirstReactionIndex);
331 WorkVec.
PutItem(3, iFirstReactionIndex,
332 (
dGet() - dVal2 + dVal1)/dCoef);
335 WorkVec.
PutItem(3, iFirstReactionIndex,
dGet() - dVal2 + dVal1);
362 connectedNodes.resize(2);
379 :
Elem(uLabel, fOutput),
380 Genel(uLabel, pDO, fOutput),
437 DEBUGCOUT(
"Entering GenelSpring::AssJac()" << std::endl);
480 DEBUGCOUT(
"Entering GenelSpring::AssRes()" << std::endl);
490 dVal = dVal2 - dVal1;
495 WorkVec.
PutItem(1, iNode1RowIndex, d);
496 WorkVec.
PutItem(2, iNode2RowIndex, -d);
506 connectedNodes.resize(2);
521 :
Elem(uLabel, fOutput),
522 Genel(uLabel, pDO, fOutput),
574 DEBUGCOUT(
"Entering GenelSpringSupport::AssJac()" << std::endl);
597 DEBUGCOUT(
"Entering GenelSpringSupport::AssRes()" << std::endl);
616 std::vector<const Node *>& connectedNodes)
const {
617 connectedNodes.resize(1);
628 if (0 == strcmp(s,
"F")) {
632 if (0 == strcmp(s,
"X")) {
636 silent_cerr(
"genel(" <<
GetLabel() <<
"): private data \"" << s <<
"\" not available" << std::endl);
648 silent_cerr(
"genel(" <<
GetLabel() <<
"): private data index " << i <<
" out of range" << std::endl);
665 :
Elem(uLabel, fOutput),
666 Genel(uLabel, pDO, fOutput),
668 SDRow(sdrow), SDCol(sdcol), dVal(0.)
724 DEBUGCOUT(
"Entering GenelCrossSpringSupport::AssJac()" << std::endl);
747 DEBUGCOUT(
"Entering GenelCrossSpringSupport::AssRes()" << std::endl);
766 std::vector<const Node *>& connectedNodes)
const {
767 connectedNodes.resize(2);
779 unsigned int uLabel,
const DofOwner* pDO,
784 :
Elem(uLabel, fOutput),
785 Genel(uLabel, pDO, fOutput),
787 dVal(0.), dValPrime(0.)
844 DEBUGCOUT(
"Entering GenelCrossSpringDamperSupport::AssJac()" << std::endl);
867 DEBUGCOUT(
"Entering GenelCrossSpringDamperSupport::AssRes()" << std::endl);
887 std::vector<const Node *>& connectedNodes)
const {
888 connectedNodes.resize(2);
903 :
Elem(uLabel, fOutput),
904 Genel(uLabel, pDO, fOutput),
906 SD(sd), dVal(0.), dInitVal(X0), dValPrime(0.)
959 DEBUGCOUT(
"Entering GenelSpringDamperSupport::AssJac()" << std::endl);
982 DEBUGCOUT(
"Entering GenelSpringDamperSupport::AssRes()" << std::endl);
1003 std::vector<const Node *>& connectedNodes)
const {
1004 connectedNodes.resize(1);
1017 :
Elem(uLabel, fOutput),
1018 Genel(uLabel, pDO, fOutput),
1077 DEBUGCOUT(
"Entering GenelMass::AssJac()" << std::endl);
1086 WM.
PutItem(1, iRowIndex, iDerivativeIndex,
dGet());
1087 WM.
PutItem(2, iDerivativeIndex, iColIndex, -1.);
1088 WM.
PutItem(3, iDerivativeIndex, iDerivativeIndex, dCoef);
1100 DEBUGCOUT(
"Entering GenelMass::AssRes()" << std::endl);
1109 doublereal dDerPrime = XPrimeCurr(iDerivativeIndex);
1112 WorkVec.
PutItem(2, iDerivativeIndex, dVal - dDer);
1130 connectedNodes.resize(1);
virtual std::ostream & Restart(std::ostream &out) const
std::ostream & Genels(void) const
virtual const doublereal & dGetDofValue(int iDof, int iOrder=0) const =0
void PutColIndex(integer iSubCol, integer iCol)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual unsigned int iGetNumDof(void) const
virtual bool bToBeOutput(void) const
#define MBDYN_EXCEPT_ARGS
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual void ResizeReset(integer)
FullSubMatrixHandler & SetFull(void)
virtual unsigned int iGetPrivDataIdx(const char *s) const
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
GenelSpringSupport(unsigned int uLabel, const DofOwner *pDO, const ConstitutiveLaw1D *pCL, const ScalarDof &sd, doublereal X0, flag fOutput)
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
doublereal dGet(void) const
const Tder & GetFDE(void) const
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
virtual DofOrder::Order GetDofType(unsigned int i) const
void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
virtual unsigned int iGetNumDof(void) const
void ResizeReset(integer iNewRow, integer iNewCol)
virtual const doublereal & dGetX(void) const =0
GenelClamp(unsigned int uLabel, const DofOwner *pDO, const DriveCaller *pDC, const ScalarDof &sd, flag fOutput)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
std::vector< Hint * > Hints
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
GenelMass(unsigned int uLabel, const DofOwner *pDO, const DriveCaller *pDC, const ScalarDof &sd, flag fOutput)
virtual Genel::Type GetGenelType(void) const
virtual void PutItem(integer iSubRow, integer iRow, const doublereal &dCoef)
void Resize(integer iNewRow, integer iNewCol)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
virtual Genel::Type GetGenelType(void) const
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual std::ostream & Restart(std::ostream &out) const
void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
virtual std::ostream & Restart(std::ostream &out) const
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual ~GenelSpringSupport(void)
virtual Genel::Type GetGenelType(void) const
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
virtual Genel::Type GetGenelType(void) const
void PutItem(integer iSubIt, integer iRow, integer iCol, const doublereal &dCoef)
virtual const doublereal & dGetXPrime(void) const =0
virtual DofOrder::Order GetDofType(unsigned int i) const
virtual ~GenelCrossSpringSupport(void)
virtual ~GenelSpringDamperSupport(void)
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
virtual std::ostream & Restart(std::ostream &out) const
virtual DofOrder::Order GetDofType(unsigned int i) const
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
GenelDistance(unsigned int uLabel, const DofOwner *pDO, const DriveCaller *pDC, const ScalarDof &sd1, const ScalarDof &sd2, flag fOutput)
virtual doublereal dGetPrivData(unsigned int i) const
virtual unsigned int iGetNumPrivData(void) const
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual ~GenelClamp(void)
virtual integer iGetFirstRowIndex(void) const
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &)
virtual DofOrder::Order GetDofType(unsigned int i) const =0
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
void AfterConvergence(const T &Eps, const T &EpsPrime=mb_zero< T >())
#define ASSERT(expression)
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
virtual DofOrder::Order GetEqType(unsigned int i) const
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
virtual Genel::Type GetGenelType(void) const
GenelCrossSpringDamperSupport(unsigned int uLabel, const DofOwner *pDO, const ConstitutiveLaw1D *pCL, const ScalarDof &sdrow, const ScalarDof &sdcol, flag fOutput)
virtual void ResizeReset(integer, integer)
virtual unsigned int iGetNumDof(void) const
virtual ~GenelCrossSpringDamperSupport(void)
void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual Genel::Type GetGenelType(void) const
virtual std::ostream & Restart(std::ostream &out) const
virtual Genel::Type GetGenelType(void) const
virtual Genel::Type GetGenelType(void) const
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual std::ostream & Restart(std::ostream &out) const
void PutRowIndex(integer iSubRow, integer iRow)
const T & GetF(void) const
virtual ~GenelSpring(void)
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
void Output(OutputHandler &OH) const
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
virtual std::ostream & Restart(std::ostream &out) const
virtual ~GenelDistance(void)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
GenelCrossSpringSupport(unsigned int uLabel, const DofOwner *pDO, const ConstitutiveLaw1D *pCL, const ScalarDof &sdrow, const ScalarDof &sdcol, flag fOutput)
void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
SparseSubMatrixHandler & SetSparse(void)
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
virtual integer iGetFirstIndex(void) const
void Output(OutputHandler &OH) const
const Tder & GetFDEPrime(void) const
void Update(const T &Eps, const T &EpsPrime=mb_zero< T >())
unsigned int GetLabel(void) const
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
GenelSpringDamperSupport(unsigned int uLabel, const DofOwner *pDO, const ConstitutiveLaw1D *pCL, const ScalarDof &sd, doublereal X0, flag fOutput)
GenelSpring(unsigned int uLabel, const DofOwner *pDO, const ConstitutiveLaw1D *pCL, const ScalarDof &sd1, const ScalarDof &sd2, flag fOutput)
virtual void Resize(integer iNewSize)=0
virtual std::ostream & Restart(std::ostream &out) const
virtual integer iGetFirstColIndex(void) const