|
| Brake (unsigned int uL, const DofOwner *pDO, const StructNode *pN1, const StructNode *pN2, const Vec3 &dTmp1, const Vec3 &dTmp2, const Mat3x3 &R1hTmp, const Mat3x3 &R2hTmp, flag fOut, const doublereal rr, const doublereal pref, BasicShapeCoefficient *const sh, BasicFriction *const f, DriveCaller *pdc) |
|
| ~Brake (void) |
|
virtual std::ostream & | Restart (std::ostream &out) const |
|
virtual Joint::Type | GetJointType (void) const |
|
virtual unsigned int | iGetNumDof (void) const |
|
DofOrder::Order | GetDofType (unsigned int i) const |
|
virtual void | SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0) |
|
virtual void | AfterConvergence (const VectorHandler &X, const VectorHandler &XP) |
|
void | WorkSpaceDim (integer *piNumRows, integer *piNumCols) const |
|
VariableSubMatrixHandler & | AssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr) |
|
SubVectorHandler & | AssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr) |
|
DofOrder::Order | GetEqType (unsigned int i) const |
|
void | Output (OutputHandler &OH) const |
|
virtual unsigned int | iGetInitialNumDof (void) const |
|
virtual void | InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const |
|
VariableSubMatrixHandler & | InitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr) |
|
SubVectorHandler & | InitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr) |
|
virtual unsigned int | iGetNumPrivData (void) const |
|
virtual unsigned int | iGetPrivDataIdx (const char *s) const |
|
virtual doublereal | dGetPrivData (unsigned int i) const |
|
virtual void | GetConnectedNodes (std::vector< const Node * > &connectedNodes) const |
|
| Elem (unsigned int uL, flag fOut) |
|
virtual | ~Elem (void) |
|
virtual std::ostream & | DescribeDof (std::ostream &out, const char *prefix="", bool bInitial=false) const |
|
virtual void | DescribeDof (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const |
|
virtual std::ostream & | DescribeEq (std::ostream &out, const char *prefix="", bool bInitial=false) const |
|
virtual void | DescribeEq (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const |
|
virtual void | AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr) |
|
virtual bool | bInverseDynamics (void) const |
|
void | SetInverseDynamicsFlags (unsigned uIDF) |
|
unsigned | GetInverseDynamicsFlags (void) const |
|
bool | bIsErgonomy (void) const |
|
bool | bIsRightHandSide (void) const |
|
virtual VariableSubMatrixHandler & | AssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr) |
|
virtual SubVectorHandler & | AssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS) |
|
virtual int | GetNumConnectedNodes (void) const |
|
| WithLabel (unsigned int uL=0, const std::string &sN="") |
|
virtual | ~WithLabel (void) |
|
void | PutLabel (unsigned int uL) |
|
void | PutName (const std::string &sN) |
|
unsigned int | GetLabel (void) const |
|
const std::string & | GetName (void) const |
|
| SimulationEntity (void) |
|
virtual | ~SimulationEntity (void) |
|
virtual bool | bIsValidIndex (unsigned int i) const |
|
virtual Hint * | ParseHint (DataManager *pDM, const char *s) const |
|
virtual void | BeforePredict (VectorHandler &, VectorHandler &, VectorHandler &, VectorHandler &) const |
|
virtual void | AfterPredict (VectorHandler &X, VectorHandler &XP) |
|
virtual void | Update (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr) |
|
virtual void | DerivativesUpdate (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr) |
|
virtual void | AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP) |
|
virtual std::ostream & | OutputAppend (std::ostream &out) const |
|
virtual void | ReadInitialState (MBDynParser &HP) |
|
| ToBeOutput (flag fOut=fDefaultOut) |
|
virtual | ~ToBeOutput (void) |
|
virtual void | OutputPrepare (OutputHandler &OH) |
|
virtual void | Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const |
|
virtual flag | fToBeOutput (void) const |
|
virtual bool | bToBeOutput (void) const |
|
virtual void | SetOutputFlag (flag f=flag(1)) |
|
| Joint (unsigned int uL, const DofOwner *pD, flag fOut) |
|
virtual | ~Joint (void) |
|
virtual Elem::Type | GetElemType (void) const |
|
std::ostream & | Output (std::ostream &out, const char *sJointName, unsigned int uLabel, const Vec3 &FLocal, const Vec3 &MLocal, const Vec3 &FGlobal, const Vec3 &MGlobal) const |
|
virtual void | SetInitialValue (VectorHandler &) |
|
virtual void | Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS) |
|
bool | bIsPrescribedMotion (void) const |
|
bool | bIsTorque (void) const |
|
| ElemGravityOwner (unsigned int uL, flag fOut) |
|
virtual | ~ElemGravityOwner (void) |
|
virtual doublereal | dGetM (void) const |
|
Vec3 | GetS (void) const |
|
Mat3x3 | GetJ (void) const |
|
Vec3 | GetB (void) const |
|
Vec3 | GetG (void) const |
|
| GravityOwner (void) |
|
virtual | ~GravityOwner (void) |
|
void | PutGravity (const Gravity *pG) |
|
virtual bool | bGetGravity (const Vec3 &X, Vec3 &Acc) const |
|
| ElemWithDofs (unsigned int uL, const DofOwner *pDO, flag fOut) |
|
virtual | ~ElemWithDofs (void) |
|
| DofOwnerOwner (const DofOwner *pDO) |
|
virtual | ~DofOwnerOwner () |
|
virtual const DofOwner * | pGetDofOwner (void) const |
|
virtual integer | iGetFirstIndex (void) const |
|
| InitialAssemblyElem (unsigned int uL, flag fOut) |
|
virtual | ~InitialAssemblyElem (void) |
|
| SubjectToInitialAssembly (void) |
|
virtual | ~SubjectToInitialAssembly (void) |
|
|
enum | Type {
UNKNOWN = -1,
AIRPROPERTIES = 0,
INDUCEDVELOCITY,
AUTOMATICSTRUCTURAL,
GRAVITY,
BODY,
JOINT,
JOINT_REGULARIZATION,
BEAM,
PLATE,
FORCE,
INERTIA,
ELECTRICBULK,
ELECTRIC,
THERMAL,
HYDRAULIC,
BULK,
LOADABLE,
DRIVEN,
EXTERNAL,
AEROMODAL,
AERODYNAMIC,
GENEL,
SOCKETSTREAM_OUTPUT,
RTAI_OUTPUT = SOCKETSTREAM_OUTPUT,
LASTELEMTYPE
} |
|
typedef std::vector< Hint * > | Hints |
|
enum | { OUTPUT = 0x1U,
OUTPUT_MASK = 0xFU,
OUTPUT_PRIVATE = 0x10U,
OUTPUT_PRIVATE_MASK = ~OUTPUT_MASK
} |
|
enum | Type {
UNKNOWN = -1,
DISTANCE = 0,
DISTANCEWITHOFFSET,
CLAMP,
SPHERICALHINGE,
PIN,
UNIVERSALHINGE,
UNIVERSALROTATION,
UNIVERSALPIN,
PLANEHINGE,
PLANEROTATION,
PLANEPIN,
AXIALROTATION,
PLANEDISP,
PLANEDISPPIN,
INPLANE,
INPLANECONTACT,
J_INLINE,
ROD,
RODBEZIER,
DEFORMABLEHINGE,
DEFORMABLEDISPJOINT,
DEFORMABLEJOINT,
DEFORMABLEAXIALJOINT,
VISCOUSBODY,
LINEARVELOCITY,
ANGULARVELOCITY,
LINEARACCELERATION,
ANGULARACCELERATION,
PRISMATIC,
DRIVEHINGE,
DRIVEDISP,
DRIVEDISPPIN,
IMPOSEDORIENTATION,
IMPOSEDDISP,
IMPOSEDDISPPIN,
IMPOSEDKINEMATICS,
BEAMSLIDER,
BRAKE,
GIMBAL,
POINT_SURFACE_CONTACT,
TOTALJOINT,
TOTALPINJOINT,
TOTALEQUATION,
TOTALREACTION,
MODAL,
SCREWJOINT,
LASTJOINTTYPE
} |
|
virtual void | OutputPrepare_int (const std::string &type, OutputHandler &OH, std::string &name) |
|
virtual Vec3 | GetS_int (void) const |
|
virtual Mat3x3 | GetJ_int (void) const |
|
virtual Vec3 | GetB_int (void) const |
|
virtual Vec3 | GetG_int (void) const |
|
unsigned int | uLabel |
|
std::string | sName |
|
flag | fOutput |
|
Gravity * | pGravity |
|
Definition at line 42 of file brake.h.
Implements Elem.
Definition at line 133 of file brake.cc.
References ExpandableRowVector::Add(), BasicFriction::AssJac(), brakeForce, d1, d2, DEBUGCOUT, DriveOwner::dGet(), Vec3::dGet(), grad::Dot(), BasicShapeCoefficient::dSh_c(), BasicFriction::fc(), fc, StructNode::GetRRef(), Mat3x3::GetVec(), StructNode::GetWCurr(), StructNode::GetWRef(), DofOwnerOwner::iGetFirstIndex(), StructDispNode::iGetFirstMomentumIndex(), StructDispNode::iGetFirstPositionIndex(), iGetNumDof(), ExpandableRowVector::Link(), M, MatCrossCross, NumSelfDof, pNode1, pNode2, preF, FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), r, R1h, R2h, ExpandableRowVector::ReDim(), FullSubMatrixHandler::ResizeReset(), ExpandableRowVector::Set(), VariableSubMatrixHandler::SetFull(), Sh_c, BasicShapeCoefficient::Sh_c(), ExpandableRowVector::Sub(), and WorkSpaceDim().
138 DEBUGCOUT(
"Entering Brake::AssJac()" << std::endl);
158 for (
unsigned int iCnt = 1; iCnt <= 6; iCnt++) {
165 for (
unsigned int iCnt = 1; iCnt <=
iGetNumDof(); iCnt++) {
219 Vec3 e3a(R1hTmp.GetVec(3));
220 Vec3 e1b(R2hTmp.GetVec(1));
221 Vec3 e2b(R2hTmp.GetVec(2));
222 MTmp = e2b*MTmp.
dGet(1)-e1b*MTmp.dGet(2);
229 Vec3 Tmp1(e2b.Cross(e3a));
230 Vec3 Tmp2(e3a.Cross(e1b));
278 dv.
Set((e3a(1)*1.)*
r, 0 + 1, 3 + 1);
279 dv.
Set((e3a(2)*1.)*
r, 0 + 2, 3 + 2);
280 dv.
Set((e3a(3)*1.)*
r, 0 + 3, 3 + 3);
282 dv.
Set(-(e3a(1)*1.)*
r, 3 + 1, 9 + 1);
283 dv.
Set(-(e3a(2)*1.)*
r, 3 + 2, 9 + 2);
284 dv.
Set(-(e3a(3)*1.)*
r, 3 + 3, 9 + 3);
289 iFirstReactionIndex +
NumSelfDof, dCoef, modF, v,
290 XCurr, XPrimeCurr, dF, dv);
298 dM3.
Set(shc*
r, 1); dM3.
Link(1, &dF);
299 dM3.
Set(modF*r, 2); dM3.
Link(2, &dShc);
303 dM3.
Add(WM, 3 + 1, e3a(1));
304 dM3.
Add(WM, 3 + 2, e3a(2));
305 dM3.
Add(WM, 3 + 3, e3a(3));
308 dM3.
Sub(WM, 9 + 1, e3a(1));
309 dM3.
Sub(WM, 9 + 2, e3a(2));
310 dM3.
Sub(WM, 9 + 3, e3a(3));
void PutColIndex(integer iSubCol, integer iCol)
void Set(doublereal xx, integer i, integer iidx)
virtual const Mat3x3 & GetRRef(void) const
FullSubMatrixHandler & SetFull(void)
void Add(doublereal xx, integer i)
const StructNode * pNode2
virtual doublereal Sh_c(void) const =0
virtual const Vec3 & GetWRef(void) const
virtual doublereal fc(void) const =0
void ReDim(const integer n)
virtual unsigned int iGetNumDof(void) const
const doublereal & dGet(unsigned short int iRow) const
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
virtual const Vec3 & GetWCurr(void) const
DotTraits< VectorExprLhs, VectorExprRhs, N_rows, N_rows >::ExpressionType Dot(const VectorExpression< VectorExprLhs, N_rows > &u, const VectorExpression< VectorExprRhs, N_rows > &v)
virtual void dSh_c(ExpandableRowVector &dShc, const doublereal f, const doublereal F, const doublereal v, const ExpandableRowVector &dfc, const ExpandableRowVector &dF, const ExpandableRowVector &dv) const =0
void Link(const integer i, const ExpandableRowVector *const xp, const integer rhs_block=1)
virtual void ResizeReset(integer, integer)
virtual void AssJac(FullSubMatrixHandler &WorkMat, ExpandableRowVector &dfc, const unsigned int startdof, const unsigned int solution_startdof, const doublereal dCoef, const doublereal F, const doublereal v, const VectorHandler &X, const VectorHandler &XP, const ExpandableRowVector &dF, const ExpandableRowVector &dv) const =0
const MatCrossCross_Manip MatCrossCross
void PutRowIndex(integer iSubRow, integer iRow)
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
BasicShapeCoefficient *const Sh_c
doublereal dGet(const doublereal &dVar) const
void Sub(doublereal xx, integer i)
const StructNode * pNode1
virtual integer iGetFirstIndex(void) const
static const unsigned int NumSelfDof
!!!!!!!!!!!!!
Implements Elem.
Definition at line 317 of file brake.cc.
References VectorHandler::Add(), BasicFriction::AssRes(), brakeForce, d1, d2, DEBUGCOUT, DriveOwner::dGet(), Vec3::dGet(), grad::Dot(), BasicFriction::fc(), fc, StructNode::GetRCurr(), Mat3x3::GetVec(), StructNode::GetWCurr(), StructDispNode::GetXCurr(), DofOwnerOwner::iGetFirstIndex(), StructDispNode::iGetFirstMomentumIndex(), iGetNumDof(), M, MBDYN_EXCEPT_ARGS, NumSelfDof, pNode1, pNode2, preF, SubVectorHandler::PutRowIndex(), r, R1h, R2h, VectorHandler::ResizeReset(), Sh_c, BasicShapeCoefficient::Sh_c(), VectorHandler::Sub(), WorkSpaceDim(), and Zero3.
322 DEBUGCOUT(
"Entering Brake::AssRes()" << std::endl);
336 for (
int iCnt = 1; iCnt <= 6; iCnt++) {
337 WorkVec.
PutRowIndex(iCnt, iNode1FirstMomIndex+iCnt);
338 WorkVec.
PutRowIndex(6+iCnt, iNode2FirstMomIndex+iCnt);
342 for (
unsigned int iCnt = 1; iCnt <=
iGetNumDof(); iCnt++) {
343 WorkVec.
PutRowIndex(12+iCnt, iFirstReactionIndex+iCnt);
368 Vec3 e3a(R1hTmp.GetVec(3));
369 Vec3 e1b(R2hTmp.GetVec(1));
370 Vec3 e2b(R2hTmp.GetVec(2));
380 bool ChangeJac(
false);
388 modF, v, XCurr, XPrimeCurr);
396 WorkVec.
Sub(4, e3a*
M(3));
397 WorkVec.
Add(10, e3a*
M(3));
const Vec3 Zero3(0., 0., 0.)
virtual void AssRes(SubVectorHandler &WorkVec, const unsigned int startdof, const unsigned int solution_startdof, const doublereal F, const doublereal v, const VectorHandler &X, const VectorHandler &XP)=0
#define MBDYN_EXCEPT_ARGS
virtual void ResizeReset(integer)
virtual const Mat3x3 & GetRCurr(void) const
virtual void Sub(integer iRow, const Vec3 &v)
const StructNode * pNode2
virtual doublereal Sh_c(void) const =0
virtual doublereal fc(void) const =0
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
virtual unsigned int iGetNumDof(void) const
const doublereal & dGet(unsigned short int iRow) const
virtual integer iGetFirstMomentumIndex(void) const =0
virtual const Vec3 & GetWCurr(void) const
DotTraits< VectorExprLhs, VectorExprRhs, N_rows, N_rows >::ExpressionType Dot(const VectorExpression< VectorExprLhs, N_rows > &u, const VectorExpression< VectorExprRhs, N_rows > &v)
virtual const Vec3 & GetXCurr(void) const
virtual void Add(integer iRow, const Vec3 &v)
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
BasicShapeCoefficient *const Sh_c
doublereal dGet(const doublereal &dVar) const
const StructNode * pNode1
virtual integer iGetFirstIndex(void) const
static const unsigned int NumSelfDof