MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
FullSubMatrixHandler Class Reference

#include <submat.h>

Inheritance diagram for FullSubMatrixHandler:
Collaboration diagram for FullSubMatrixHandler:

Public Member Functions

 FullSubMatrixHandler (integer iIntSize, integer *piTmpVec, integer iDoubleSize, doublereal *pdTmpMat, integer iMaxCols, doublereal **ppdCols)
 
 FullSubMatrixHandler (integer iNR, integer iNC=0)
 
virtual ~FullSubMatrixHandler (void)
 
integer iGetNumRows (void) const
 
integer iGetNumCols (void) const
 
void Reset (void)
 
void Resize (integer iNewRow, integer iNewCol)
 
virtual void ResizeReset (integer, integer)
 
void Attach (int iRows, int iCols, integer *piTmpIndx)
 
void PutCoef (integer iRow, integer iCol, const doublereal &dCoef)
 
void IncCoef (integer iRow, integer iCol, const doublereal &dCoef)
 
void DecCoef (integer iRow, integer iCol, const doublereal &dCoef)
 
const doublerealdGetCoef (integer iRow, integer iCol) const
 
const doublerealoperator() (integer iRow, integer iCol) const
 
doublerealoperator() (integer iRow, integer iCol)
 
void PutRowIndex (integer iSubRow, integer iRow)
 
void PutColIndex (integer iSubCol, integer iCol)
 
integer iGetRowIndex (integer iSubRow) const
 
integer iGetColIndex (integer iSubCol) const
 
void Add (integer iRow, integer iCol, const Vec3 &v)
 
void Sub (integer iRow, integer iCol, const Vec3 &v)
 
void Put (integer iRow, integer iCol, const Vec3 &v)
 
void AddT (integer iRow, integer iCol, const Vec3 &v)
 
void SubT (integer iRow, integer iCol, const Vec3 &v)
 
void PutT (integer iRow, integer iCol, const Vec3 &v)
 
void Add (integer iRow, integer iCol, const Mat3x3 &m)
 
void AddT (integer iRow, integer iCol, const Mat3x3 &m)
 
void Sub (integer iRow, integer iCol, const Mat3x3 &m)
 
void SubT (integer iRow, integer iCol, const Mat3x3 &m)
 
void Put (integer iRow, integer iCol, const Mat3x3 &m)
 
void PutT (integer iRow, integer iCol, const Mat3x3 &m)
 
void Add (integer iRow, integer iCol, const Mat3xN &m)
 
void AddT (integer iRow, integer iCol, const Mat3xN &m)
 
void Sub (integer iRow, integer iCol, const Mat3xN &m)
 
void SubT (integer iRow, integer iCol, const Mat3xN &m)
 
void Put (integer iRow, integer iCol, const Mat3xN &m)
 
void PutT (integer iRow, integer iCol, const Mat3xN &m)
 
void Add (integer iRow, integer iCol, const MatNx3 &m)
 
void Sub (integer iRow, integer iCol, const MatNx3 &m)
 
void Put (integer iRow, integer iCol, const MatNx3 &m)
 
void PutDiag (integer iFirstRow, integer iFirstCol, const Vec3 &v)
 
void PutDiag (integer iFirstRow, integer iFirstCol, const doublereal &v)
 
void PutCross (integer iFirstRow, integer iFirstCol, const Vec3 &v)
 
void Add (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void Sub (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void Put (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void Add (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void Sub (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void Put (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void AddT (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void SubT (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void PutT (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void AddT (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void SubT (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void PutT (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
MatrixHandlerAddTo (MatrixHandler &MH) const
 
MatrixHandlerAddToT (MatrixHandler &MH) const
 
MatrixHandlerAddTo (FullMatrixHandler &MH) const
 
MatrixHandlerAddToT (FullMatrixHandler &MH) const
 
MatrixHandlerSubFrom (MatrixHandler &MH) const
 
MatrixHandlerSubFromT (MatrixHandler &MH) const
 
MatrixHandlerSubFrom (FullMatrixHandler &MH) const
 
MatrixHandlerSubFromT (FullMatrixHandler &MH) const
 
- Public Member Functions inherited from SubMatrixHandler
virtual ~SubMatrixHandler (void)
 
- Public Member Functions inherited from MatrixHandler
virtual ~MatrixHandler (void)
 
virtual integerpiGetRows (void) const
 
virtual integerpiGetCols (void) const
 
virtual integer PacMat (void)
 
virtual MatrixHandleroperator= (const MatrixHandler &MH)
 
virtual MatrixHandlerScalarMul (const doublereal &d)
 
virtual MatrixHandlerMatMatMul (MatrixHandler &out, const MatrixHandler &in) const
 
virtual MatrixHandlerMatTMatMul (MatrixHandler &out, const MatrixHandler &in) const
 
virtual MatrixHandlerMatMatIncMul (MatrixHandler &out, const MatrixHandler &in) const
 
virtual MatrixHandlerMatTMatIncMul (MatrixHandler &out, const MatrixHandler &in) const
 
virtual MatrixHandlerMatMatDecMul (MatrixHandler &out, const MatrixHandler &in) const
 
virtual MatrixHandlerMatTMatDecMul (MatrixHandler &out, const MatrixHandler &in) const
 
virtual VectorHandlerMatVecMul (VectorHandler &out, const VectorHandler &in) const
 
virtual VectorHandlerMatTVecMul (VectorHandler &out, const VectorHandler &in) const
 
virtual VectorHandlerMatVecIncMul (VectorHandler &out, const VectorHandler &in) const
 
virtual VectorHandlerMatTVecIncMul (VectorHandler &out, const VectorHandler &in) const
 
virtual VectorHandlerMatVecDecMul (VectorHandler &out, const VectorHandler &in) const
 
virtual VectorHandlerMatTVecDecMul (VectorHandler &out, const VectorHandler &in) const
 
virtual doublereal ConditionNumber (enum Norm_t eNorm=NORM_1) const
 
virtual doublereal Norm (enum Norm_t eNorm=NORM_1) const
 
- Public Member Functions inherited from FullMatrixHandler
 FullMatrixHandler (const FullMatrixHandler &)
 
FullMatrixHandleroperator= (const FullMatrixHandler &)
 
FullMatrixHandler::const_iterator begin (void) const
 
const
FullMatrixHandler::const_iterator
end (void) const
 
 FullMatrixHandler (doublereal *pd, doublereal **ppd, integer iSize, integer iNR, integer iNC, integer iMaxCols=0)
 
 FullMatrixHandler (integer iNR, integer iNC=0)
 
 FullMatrixHandler (void)
 
virtual ~FullMatrixHandler (void)
 
void Detach (void)
 
void Attach (integer iNewRows, integer iNewCols, doublereal *pd, doublereal **ppd, integer iMSize=0, integer iMaxC=0)
 
const doublerealpdGetMat (void) const
 
doublerealpdGetMat (void)
 
virtual const doublerealpdGetVec (integer iCol) const
 
virtual doublerealpdGetVec (integer iCol)
 
virtual MatrixHandleroperator+= (const SubMatrixHandler &SubMH)
 
virtual MatrixHandleroperator-= (const SubMatrixHandler &SubMH)
 
virtual MatrixHandleroperator+= (const VariableSubMatrixHandler &SubMH)
 
virtual MatrixHandleroperator-= (const VariableSubMatrixHandler &SubMH)
 
void MatMul (const FullMatrixHandler &m1, const FullMatrixHandler &m2)
 
void Add (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void Sub (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void Put (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void Add (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void Sub (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void Put (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void AddT (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void SubT (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void PutT (integer iRow, integer iCol, const FullMatrixHandler &source)
 
void AddT (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void SubT (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void PutT (integer iRow, integer iCol, const FullMatrixHandler &source, const doublereal dCoef)
 
void Add (integer iRow, integer iCol, const Vec3 &v)
 
void Sub (integer iRow, integer iCol, const Vec3 &v)
 
void Put (integer iRow, integer iCol, const Vec3 &v)
 
void AddT (integer iRow, integer iCol, const Vec3 &v)
 
void SubT (integer iRow, integer iCol, const Vec3 &v)
 
void PutT (integer iRow, integer iCol, const Vec3 &v)
 
void Add (integer iRow, integer iCol, const Mat3x3 &m)
 
void AddT (integer iRow, integer iCol, const Mat3x3 &m)
 
void Sub (integer iRow, integer iCol, const Mat3x3 &m)
 
void SubT (integer iRow, integer iCol, const Mat3x3 &m)
 
void Put (integer iRow, integer iCol, const Mat3x3 &m)
 
void PutT (integer iRow, integer iCol, const Mat3x3 &m)
 
void Add (integer iRow, integer iCol, const Mat3xN &m)
 
void AddT (integer iRow, integer iCol, const Mat3xN &m)
 
void Sub (integer iRow, integer iCol, const Mat3xN &m)
 
void SubT (integer iRow, integer iCol, const Mat3xN &m)
 
void Put (integer iRow, integer iCol, const Mat3xN &m)
 
void PutT (integer iRow, integer iCol, const Mat3xN &m)
 
void Add (integer iRow, integer iCol, const MatNx3 &m)
 
void Sub (integer iRow, integer iCol, const MatNx3 &m)
 
void Put (integer iRow, integer iCol, const MatNx3 &m)
 
void CopyMatrixRow (integer dest_row, const FullMatrixHandler &source, integer source_row)
 
void CopyMatrixBlock (integer dest_row, integer dest_col, const FullMatrixHandler &source, integer source_start_row, integer source_end_row, integer source_start_col, integer source_end_col)
 

Protected Attributes

integer iVecSize
 
integerpiRowm1
 
integerpiColm1
 
- Protected Attributes inherited from FullMatrixHandler
bool bOwnsMemory
 
integer iNumRows
 
integer iNumCols
 
integer iRawSize
 
integer iMaxCols
 
doublerealpdRaw
 
doublerealpdRawm1
 
doublereal ** ppdCols
 
doublereal ** ppdColsm1
 

Private Member Functions

 FullSubMatrixHandler (const FullSubMatrixHandler &)
 

Friends

class NaiveMatrixHandler
 
class NaivePermMatrixHandler
 
std::ostream & operator<< (std::ostream &out, const FullSubMatrixHandler &m)
 

Additional Inherited Members

- Public Types inherited from MatrixHandler
enum  Norm_t { NORM_1, NORM_INF }
 
- Protected Member Functions inherited from FullMatrixHandler
void CreateColRow (integer iNR, integer iNC)
 
MatrixHandlerMatMatMul_base (void(MatrixHandler::*op)(integer iRow, integer iCol, const doublereal &dCoef), MatrixHandler &out, const MatrixHandler &in) const
 
MatrixHandlerMatTMatMul_base (void(MatrixHandler::*op)(integer iRow, integer iCol, const doublereal &dCoef), MatrixHandler &out, const MatrixHandler &in) const
 
virtual VectorHandlerMatVecMul_base (void(VectorHandler::*op)(integer iRow, const doublereal &dCoef), VectorHandler &out, const VectorHandler &in) const
 
virtual VectorHandlerMatTVecMul_base (void(VectorHandler::*op)(integer iRow, const doublereal &dCoef), VectorHandler &out, const VectorHandler &in) const
 

Detailed Description

Definition at line 175 of file submat.h.

Constructor & Destructor Documentation

FullSubMatrixHandler::FullSubMatrixHandler ( const FullSubMatrixHandler )
private
FullSubMatrixHandler::FullSubMatrixHandler ( integer  iIntSize,
integer piTmpVec,
integer  iDoubleSize,
doublereal pdTmpMat,
integer  iMaxCols,
doublereal **  ppdCols 
)

Definition at line 53 of file submat.cc.

References ASSERT, FullMatrixHandler::iNumRows, piColm1, and piRowm1.

59 : FullMatrixHandler(pdTmpMat, ppdCols, iDoubleSize, 1, 1, iMaxCols),
60 iVecSize(iIntSize), piRowm1(0), piColm1(0)
61 {
62 #ifdef DEBUG
63  IsValid();
64 #endif
65 
66  /*
67  * Non posso fare controlli piu' precisi sulla consistenza
68  * delle dimensioni delle aree di lavoro perche' e' legale
69  * che la submatrix sia in seguito ridimensionata nei modi
70  * piu' vari. */
71  ASSERT(piTmpVec);
72  piRowm1 = piTmpVec - 1;
74 }
integer * piRowm1
Definition: submat.h:189
integer iMaxCols
Definition: fullmh.h:67
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
doublereal ** ppdCols
Definition: fullmh.h:71
#define ASSERT(expression)
Definition: colamd.c:977
FullMatrixHandler(void)
Definition: fullmh.cc:119
integer iVecSize
Definition: submat.h:186
FullSubMatrixHandler::FullSubMatrixHandler ( integer  iNR,
integer  iNC = 0 
)

Definition at line 76 of file submat.cc.

References ASSERT, FullMatrixHandler::bOwnsMemory, iVecSize, piColm1, piRowm1, and SAFENEWARR.

77 : FullMatrixHandler(iNR, iNC), iVecSize(iNR + iNC), piRowm1(0), piColm1(0)
78 {
81 
82  piRowm1--;
83  piColm1 = piRowm1 + iNR;
84 }
integer * piRowm1
Definition: submat.h:189
integer * piColm1
Definition: submat.h:191
#define ASSERT(expression)
Definition: colamd.c:977
FullMatrixHandler(void)
Definition: fullmh.cc:119
#define SAFENEWARR(pnt, item, sz)
Definition: mynewmem.h:701
bool bOwnsMemory
Definition: fullmh.h:61
long int integer
Definition: colamd.c:51
integer iVecSize
Definition: submat.h:186
FullSubMatrixHandler::~FullSubMatrixHandler ( void  )
virtual

Definition at line 87 of file submat.cc.

References FullMatrixHandler::bOwnsMemory, piRowm1, and SAFEDELETEARR.

88 {
89  if (bOwnsMemory) {
90  piRowm1++;
92  }
93 }
integer * piRowm1
Definition: submat.h:189
#define SAFEDELETEARR(pnt)
Definition: mynewmem.h:713
bool bOwnsMemory
Definition: fullmh.h:61

Member Function Documentation

void FullSubMatrixHandler::Add ( integer  iRow,
integer  iCol,
const Vec3 v 
)

Definition at line 209 of file submat.cc.

References FullMatrixHandler::Add().

Referenced by UniversalHingeJoint::AssJac(), PrismaticJoint::AssJac(), Actuator::AssJac(), RodBezier::AssJac(), PlaneHingeJoint::AssJac(), BeamSliderJoint::AssJac(), TotalJoint::AssJac(), UniversalRotationJoint::AssJac(), ViscoElasticRod::AssJac(), Membrane4EAS::AssJac(), UniversalPinJoint::AssJac(), PlaneRotationJoint::AssJac(), Modal::AssJac(), RodWithOffset::AssJac(), FollowerForce::AssJac(), TotalReaction::AssJac(), Shell4EAS::AssJac(), ModuleIMUConstraint::AssJac(), TotalPinJoint::AssJac(), Shell4EASANS::AssJac(), FollowerCouple::AssJac(), AxialRotationJoint::AssJac(), AbsoluteInternalForce::AssJac(), TotalForce::AssJac(), LoadIncForce::AssJac(), FollowerInternalForce::AssJac(), FollowerInternalCouple::AssJac(), GimbalRotationJoint::AssMat(), DriveDisplacementJoint::AssMat(), DriveHingeJoint::AssMat(), PointSurfaceContact::AssMat(), Rod::AssMat(), DriveDisplacementPinJoint::AssMat(), DeformableJoint::AssMatCommon(), DeformableJoint::AssMatElastic(), DeformableDispJoint::AssMatF(), DeformableDispJoint::AssMatFDE(), DeformableDispJoint::AssMatFDEPrime(), DeformableAxialJoint::AssMatM(), DeformableHingeJoint::AssMatM(), DeformableAxialJoint::AssMatMDE(), DeformableHingeJoint::AssMatMDE(), DeformableAxialJoint::AssMatMDEPrime(), DeformableHingeJoint::AssMatMDEPrime(), DeformableHingeJoint::AssMatMDEPrimeInv(), DeformableHingeJoint::AssMatMInv(), ViscousBody::AssMats(), DynamicVariableBody::AssMats(), StaticVariableBody::AssMats(), DynamicBody::AssMats(), ModalBody::AssMats(), StaticBody::AssMats(), Mass::AssMatsRBK_int(), VariableBody::AssMatsRBK_int(), Body::AssMatsRBK_int(), DeformableJoint::AssMatViscous(), PiezoActuatorBeam::AssStiffnessMat(), PiezoActuatorBeam2::AssStiffnessMat(), Beam2::AssStiffnessMat(), HBeam::AssStiffnessMat(), PiezoActuatorVEBeam2::AssStiffnessMat(), PiezoActuatorVEBeam::AssStiffnessMat(), Beam::AssStiffnessMat(), ViscoElasticBeam2::AssStiffnessMat(), ViscoElasticBeam::AssStiffnessMat(), InLineJoint::InitialAssJac(), UniversalHingeJoint::InitialAssJac(), InPlaneJoint::InitialAssJac(), PrismaticJoint::InitialAssJac(), SphericalHingeJoint::InitialAssJac(), RodBezier::InitialAssJac(), DriveDisplacementJoint::InitialAssJac(), DriveHingeJoint::InitialAssJac(), PlaneHingeJoint::InitialAssJac(), DynamicVariableBody::InitialAssJac(), InLineWithOffsetJoint::InitialAssJac(), DistanceJointWithOffset::InitialAssJac(), UniversalRotationJoint::InitialAssJac(), PinJoint::InitialAssJac(), InPlaneWithOffsetJoint::InitialAssJac(), TotalJoint::InitialAssJac(), ViscoElasticRod::InitialAssJac(), DriveDisplacementPinJoint::InitialAssJac(), UniversalPinJoint::InitialAssJac(), PlaneRotationJoint::InitialAssJac(), Modal::InitialAssJac(), RodWithOffset::InitialAssJac(), FollowerForce::InitialAssJac(), ViscousAxialJoint::InitialAssJac(), TotalReaction::InitialAssJac(), DynamicBody::InitialAssJac(), FollowerCouple::InitialAssJac(), TotalPinJoint::InitialAssJac(), ViscousHingeJoint::InitialAssJac(), ViscousDispJoint::InitialAssJac(), ViscoElasticAxialJoint::InitialAssJac(), AxialRotationJoint::InitialAssJac(), AbsoluteInternalForce::InitialAssJac(), TotalForce::InitialAssJac(), ViscoElasticDispJoint::InitialAssJac(), PlanePinJoint::InitialAssJac(), ViscoElasticHingeJoint::InitialAssJac(), FollowerInternalForce::InitialAssJac(), and FollowerInternalCouple::InitialAssJac().

210 {
211  FullMatrixHandler::Add(iRow, iCol, v);
212 }
void Add(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1039

Here is the call graph for this function:

void FullSubMatrixHandler::Add ( integer  iRow,
integer  iCol,
const Mat3x3 m 
)

Definition at line 430 of file submat.cc.

References FullMatrixHandler::Add().

431 {
432  FullMatrixHandler::Add(iRow, iCol, m);
433 }
void Add(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1039

Here is the call graph for this function:

void FullSubMatrixHandler::Add ( integer  iRow,
integer  iCol,
const Mat3xN m 
)

Definition at line 466 of file submat.cc.

References FullMatrixHandler::Add().

467 {
468  FullMatrixHandler::Add(iRow, iCol, m);
469 }
void Add(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1039

Here is the call graph for this function:

void FullSubMatrixHandler::Add ( integer  iRow,
integer  iCol,
const MatNx3 m 
)

Definition at line 502 of file submat.cc.

References FullMatrixHandler::Add().

503 {
504  FullMatrixHandler::Add(iRow, iCol, m);
505 }
void Add(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1039

Here is the call graph for this function:

void FullSubMatrixHandler::Add ( integer  iRow,
integer  iCol,
const FullMatrixHandler source 
)

Definition at line 866 of file submat.cc.

References FullMatrixHandler::Add().

869 {
870  FullMatrixHandler::Add(iRow, iCol, source);
871 }
void Add(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1039

Here is the call graph for this function:

void FullSubMatrixHandler::Add ( integer  iRow,
integer  iCol,
const FullMatrixHandler source,
const doublereal  dCoef 
)

Definition at line 890 of file submat.cc.

References FullMatrixHandler::Add().

894 {
895  FullMatrixHandler::Add(iRow, iCol, source, dCoef);
896 }
void Add(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1039

Here is the call graph for this function:

void FullSubMatrixHandler::AddT ( integer  iRow,
integer  iCol,
const Vec3 v 
)
void FullSubMatrixHandler::AddT ( integer  iRow,
integer  iCol,
const Mat3x3 m 
)

Definition at line 436 of file submat.cc.

References FullMatrixHandler::AddT().

437 {
438  FullMatrixHandler::AddT(iRow, iCol, m);
439 }
void AddT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1264

Here is the call graph for this function:

void FullSubMatrixHandler::AddT ( integer  iRow,
integer  iCol,
const Mat3xN m 
)

Definition at line 484 of file submat.cc.

References FullMatrixHandler::AddT().

485 {
486  FullMatrixHandler::AddT(iRow, iCol, m);
487 }
void AddT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1264

Here is the call graph for this function:

void FullSubMatrixHandler::AddT ( integer  iRow,
integer  iCol,
const FullMatrixHandler source 
)

Definition at line 917 of file submat.cc.

References FullMatrixHandler::AddT().

920 {
921  FullMatrixHandler::AddT(iRow, iCol, source);
922 }
void AddT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1264

Here is the call graph for this function:

void FullSubMatrixHandler::AddT ( integer  iRow,
integer  iCol,
const FullMatrixHandler source,
const doublereal  dCoef 
)

Definition at line 941 of file submat.cc.

References FullMatrixHandler::AddT().

945 {
946  FullMatrixHandler::AddT(iRow, iCol, source, dCoef);
947 }
void AddT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1264

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::AddTo ( MatrixHandler MH) const
virtual

Implements SubMatrixHandler.

Reimplemented in VariableSubMatrixHandler.

Definition at line 604 of file submat.cc.

References ASSERT, c, MatrixHandler::iGetNumCols(), MatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

Referenced by VariableSubMatrixHandler::AddTo(), and main().

605 {
606 #ifdef DEBUG
607  IsValid();
608  MH.IsValid();
609 #endif /* DEBUG */
610 
611  ASSERT(MH.iGetNumRows() >= iNumRows);
612  ASSERT(MH.iGetNumCols() >= iNumCols);
613 
614  for (integer c = iNumCols; c > 0; c--) {
615  ASSERT(piColm1[c] > 0);
616  ASSERT(piColm1[c] <= MH.iGetNumCols());
617 
618  for (integer r = iNumRows; r > 0; r--) {
619  ASSERT(piRowm1[r] > 0);
620  ASSERT(piRowm1[r] <= MH.iGetNumRows());
621 
622  MH(piRowm1[r], piColm1[c]) += ppdColsm1[c][r];
623  }
624  }
625 
626  return MH;
627 }
integer * piRowm1
Definition: submat.h:189
virtual integer iGetNumCols(void) const =0
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const =0

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::AddTo ( FullMatrixHandler MH) const

Definition at line 660 of file submat.cc.

References ASSERT, c, FullMatrixHandler::iGetNumCols(), FullMatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

661 {
662 #ifdef DEBUG
663  IsValid();
664  MH.IsValid();
665 #endif /* DEBUG */
666 
667  ASSERT(MH.iGetNumRows() >= iNumRows);
668  ASSERT(MH.iGetNumCols() >= iNumCols);
669 
670  doublereal **ppd = MH.ppdColsm1;
671 
672  for (integer c = iNumCols; c > 0; c--) {
673  ASSERT(piColm1[c] > 0);
674  ASSERT(piColm1[c] <= MH.iGetNumCols());
675 
676  for (integer r = iNumRows; r > 0; r--) {
677  ASSERT(piRowm1[r] > 0);
678  ASSERT(piRowm1[r] <= MH.iGetNumRows());
679 
680  ppd[piColm1[c]][piRowm1[r]] += ppdColsm1[c][r];
681  }
682  }
683 
684  return MH;
685 }
integer * piRowm1
Definition: submat.h:189
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
virtual integer iGetNumCols(void) const
Definition: fullmh.h:229
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const
Definition: fullmh.h:225

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::AddToT ( MatrixHandler MH) const
virtual

Implements SubMatrixHandler.

Reimplemented in VariableSubMatrixHandler.

Definition at line 632 of file submat.cc.

References ASSERT, c, MatrixHandler::iGetNumCols(), MatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

Referenced by VariableSubMatrixHandler::AddToT(), and main().

633 {
634 #ifdef DEBUG
635  IsValid();
636  MH.IsValid();
637 #endif /* DEBUG */
638 
639  ASSERT(MH.iGetNumRows() >= iNumCols);
640  ASSERT(MH.iGetNumCols() >= iNumRows);
641 
642  for (integer c = iNumCols; c > 0; c--) {
643  ASSERT(piColm1[c] > 0);
644  ASSERT(piColm1[c] <= MH.iGetNumRows());
645 
646  for (integer r = iNumRows; r > 0; r--) {
647  ASSERT(piRowm1[r] > 0);
648  ASSERT(piRowm1[r] <= MH.iGetNumCols());
649 
650  MH(piColm1[c], piRowm1[r]) += ppdColsm1[c][r];
651  }
652  }
653 
654  return MH;
655 }
integer * piRowm1
Definition: submat.h:189
virtual integer iGetNumCols(void) const =0
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const =0

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::AddToT ( FullMatrixHandler MH) const

Definition at line 690 of file submat.cc.

References ASSERT, c, FullMatrixHandler::iGetNumCols(), FullMatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

691 {
692 #ifdef DEBUG
693  IsValid();
694  MH.IsValid();
695 #endif /* DEBUG */
696 
697  ASSERT(MH.iGetNumRows() >= iNumCols);
698  ASSERT(MH.iGetNumCols() >= iNumRows);
699 
700  doublereal **ppd = MH.ppdColsm1;
701 
702  for (integer c = iNumCols; c > 0; c--) {
703  ASSERT(piColm1[c] > 0);
704  ASSERT(piColm1[c] <= MH.iGetNumRows());
705 
706  for (integer r = iNumRows; r > 0; r--) {
707  ASSERT(piRowm1[r] > 0);
708  ASSERT(piRowm1[r] <= MH.iGetNumCols());
709 
710  ppd[piRowm1[r]][piColm1[c]] += ppdColsm1[c][r];
711  }
712  }
713 
714  return MH;
715 }
integer * piRowm1
Definition: submat.h:189
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
virtual integer iGetNumCols(void) const
Definition: fullmh.h:229
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const
Definition: fullmh.h:225

Here is the call graph for this function:

void FullSubMatrixHandler::Attach ( int  iRows,
int  iCols,
integer piTmpIndx 
)

Definition at line 193 of file submat.cc.

References FullMatrixHandler::bOwnsMemory, FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and SAFEDELETEARR.

194 {
195  iNumRows = iRows;
196  iNumCols = iCols;
197 
198  if (bOwnsMemory) {
199  if (piRowm1 != 0) {
200  piRowm1++;
202  }
203  piRowm1 = piTmpIndx - 1;
205  }
206 }
integer * piRowm1
Definition: submat.h:189
integer * piColm1
Definition: submat.h:191
#define SAFEDELETEARR(pnt)
Definition: mynewmem.h:713
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
bool bOwnsMemory
Definition: fullmh.h:61
void FullSubMatrixHandler::DecCoef ( integer  iRow,
integer  iCol,
const doublereal dCoef 
)
inlinevirtual

Reimplemented from FullMatrixHandler.

Definition at line 694 of file submat.h.

References FullMatrixHandler::DecCoef(), and FullMatrixHandler::ppdColsm1.

Referenced by ThermalResistance::AssJac(), BeamSliderJoint::AssJac(), UniversalRotationJoint::AssJac(), Modal::AssJac(), GimbalRotationJoint::AssMat(), DriveDisplacementJoint::AssMat(), UniversalHingeJoint::InitialAssJac(), DriveDisplacementJoint::InitialAssJac(), UniversalRotationJoint::InitialAssJac(), Modal::InitialAssJac(), and ExpandableRowVector::Sub().

696 {
697 #if 0
698  ppdColsm1[iCol][iRow] -= dCoef;
699 #endif
700  FullMatrixHandler::DecCoef(iRow, iCol, dCoef);
701 }
virtual void DecCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: fullmh.h:202
doublereal ** ppdColsm1
Definition: fullmh.h:72

Here is the call graph for this function:

const doublereal & FullSubMatrixHandler::dGetCoef ( integer  iRow,
integer  iCol 
) const
inlinevirtual

Reimplemented from FullMatrixHandler.

Definition at line 705 of file submat.h.

References FullMatrixHandler::dGetCoef(), and FullMatrixHandler::ppdColsm1.

Referenced by Wheel4::AssJac().

706 {
707 #if 0
708  return ppdColsm1[iCol][iRow];
709 #endif
710  return FullMatrixHandler::dGetCoef(iRow, iCol);
711 }
virtual const doublereal & dGetCoef(integer iRow, integer iCol) const
Definition: fullmh.h:214
doublereal ** ppdColsm1
Definition: fullmh.h:72

Here is the call graph for this function:

integer FullSubMatrixHandler::iGetColIndex ( integer  iSubCol) const
inlinevirtual

Implements SubMatrixHandler.

Definition at line 353 of file submat.h.

References ASSERT, FullMatrixHandler::iNumCols, and piColm1.

353  {
354 #ifdef DEBUG
355  IsValid();
356 #endif /* DEBUG */
357 
358  ASSERT((iSubCol > 0) && (iSubCol <= iNumCols));
359 
360  return piColm1[iSubCol];
361  };
integer * piColm1
Definition: submat.h:191
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
integer FullSubMatrixHandler::iGetNumCols ( void  ) const
inlinevirtual

Reimplemented from FullMatrixHandler.

Definition at line 240 of file submat.h.

References FullMatrixHandler::iNumCols.

Referenced by Wheel4::AssJac(), NaiveMatrixHandler::operator+=(), and NaiveMatrixHandler::operator-=().

240  {
241  return iNumCols;
242  };
integer iNumCols
Definition: fullmh.h:64
integer FullSubMatrixHandler::iGetNumRows ( void  ) const
inlinevirtual

Reimplemented from FullMatrixHandler.

Definition at line 233 of file submat.h.

References FullMatrixHandler::iNumRows.

Referenced by NaiveMatrixHandler::operator+=(), and NaiveMatrixHandler::operator-=().

233  {
234  return iNumRows;
235  };
integer iNumRows
Definition: fullmh.h:63
integer FullSubMatrixHandler::iGetRowIndex ( integer  iSubRow) const
inlinevirtual

Implements SubMatrixHandler.

Definition at line 339 of file submat.h.

References ASSERT, FullMatrixHandler::iNumRows, and piRowm1.

339  {
340 #ifdef DEBUG
341  IsValid();
342 #endif /* DEBUG */
343 
344  ASSERT((iSubRow > 0) && (iSubRow <= iNumRows));
345 
346  return piRowm1[iSubRow];
347  };
integer * piRowm1
Definition: submat.h:189
integer iNumRows
Definition: fullmh.h:63
#define ASSERT(expression)
Definition: colamd.c:977
const doublereal & FullSubMatrixHandler::operator() ( integer  iRow,
integer  iCol 
) const
inlinevirtual

Reimplemented from FullMatrixHandler.

Reimplemented in VariableSubMatrixHandler.

Definition at line 715 of file submat.h.

References FullMatrixHandler::operator()().

716 {
717  return FullMatrixHandler::operator()(iRow, iCol);
718 }
virtual doublereal & operator()(integer iRow, integer iCol)
Definition: fullmh.h:234

Here is the call graph for this function:

doublereal & FullSubMatrixHandler::operator() ( integer  iRow,
integer  iCol 
)
inlinevirtual

Reimplemented from FullMatrixHandler.

Reimplemented in VariableSubMatrixHandler.

Definition at line 721 of file submat.h.

References FullMatrixHandler::operator()().

722 {
723  return FullMatrixHandler::operator()(iRow, iCol);
724 }
virtual doublereal & operator()(integer iRow, integer iCol)
Definition: fullmh.h:234

Here is the call graph for this function:

void FullSubMatrixHandler::Put ( integer  iRow,
integer  iCol,
const Vec3 v 
)

Definition at line 221 of file submat.cc.

References FullMatrixHandler::Put().

Referenced by InlineFriction::AssJac(), asynchronous_machine::AssJac(), Motor::AssJac(), and InlineFriction::InitialAssJac().

222 {
223  FullMatrixHandler::Put(iRow, iCol, v);
224 }
void Put(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1113

Here is the call graph for this function:

void FullSubMatrixHandler::Put ( integer  iRow,
integer  iCol,
const Mat3x3 m 
)

Definition at line 454 of file submat.cc.

References FullMatrixHandler::Put().

455 {
456  FullMatrixHandler::Put(iRow, iCol, m);
457 }
void Put(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1113

Here is the call graph for this function:

void FullSubMatrixHandler::Put ( integer  iRow,
integer  iCol,
const Mat3xN m 
)

Definition at line 478 of file submat.cc.

References FullMatrixHandler::Put().

479 {
480  FullMatrixHandler::Put(iRow, iCol, m);
481 }
void Put(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1113

Here is the call graph for this function:

void FullSubMatrixHandler::Put ( integer  iRow,
integer  iCol,
const MatNx3 m 
)

Definition at line 516 of file submat.cc.

References FullMatrixHandler::Put().

517 {
518  FullMatrixHandler::Put(iRow, iCol, m);
519 }
void Put(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1113

Here is the call graph for this function:

void FullSubMatrixHandler::Put ( integer  iRow,
integer  iCol,
const FullMatrixHandler source 
)

Definition at line 882 of file submat.cc.

References FullMatrixHandler::Put().

885 {
886  FullMatrixHandler::Put(iRow, iCol, source);
887 }
void Put(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1113

Here is the call graph for this function:

void FullSubMatrixHandler::Put ( integer  iRow,
integer  iCol,
const FullMatrixHandler source,
const doublereal  dCoef 
)

Definition at line 908 of file submat.cc.

References FullMatrixHandler::Put().

912 {
913  FullMatrixHandler::Put(iRow, iCol, source, dCoef);
914 }
void Put(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1113

Here is the call graph for this function:

void FullSubMatrixHandler::PutCoef ( integer  iRow,
integer  iCol,
const doublereal dCoef 
)
inlinevirtual

Reimplemented from FullMatrixHandler.

Definition at line 672 of file submat.h.

References FullMatrixHandler::ppdColsm1, and FullMatrixHandler::PutCoef().

Referenced by ModuleMDS::AssJac(), MinorLoss::AssJac(), InlineFriction::AssJac(), Pipe::AssJac(), LoadIncNorm::AssJac(), Control_valve::AssJac(), UniversalHingeJoint::AssJac(), GenelStateSpaceSISO::AssJac(), Actuator::AssJac(), asynchronous_machine::AssJac(), Accumulator::AssJac(), BulkSpringSupport::AssJac(), Motor::AssJac(), ThreeWayMinorLoss::AssJac(), PlaneHingeJoint::AssJac(), Dynamic_pipe::AssJac(), GenelStateSpaceMIMO::AssJac(), Tank::AssJac(), GenelSpring::AssJac(), Control_valve2::AssJac(), Orifice::AssJac(), GenelSpringSupport::AssJac(), DynamicPipe::AssJac(), UniversalPinJoint::AssJac(), PlaneRotationJoint::AssJac(), Dynamic_control_valve::AssJac(), Modal::AssJac(), GenelCrossSpringSupport::AssJac(), Wheel4::AssJac(), GenelCrossSpringDamperSupport::AssJac(), ModuleIMUConstraint::AssJac(), Pressure_flow_control_valve::AssJac(), GenelSpringDamperSupport::AssJac(), AxialRotationJoint::AssJac(), Pressure_valve::AssJac(), Flow_valve::AssJac(), InLineJoint::InitialAssJac(), UniversalHingeJoint::InitialAssJac(), InPlaneJoint::InitialAssJac(), PrismaticJoint::InitialAssJac(), SphericalHingeJoint::InitialAssJac(), PlaneHingeJoint::InitialAssJac(), InLineWithOffsetJoint::InitialAssJac(), DistanceJointWithOffset::InitialAssJac(), UniversalRotationJoint::InitialAssJac(), PinJoint::InitialAssJac(), InPlaneWithOffsetJoint::InitialAssJac(), UniversalPinJoint::InitialAssJac(), PlaneRotationJoint::InitialAssJac(), Modal::InitialAssJac(), AxialRotationJoint::InitialAssJac(), PlanePinJoint::InitialAssJac(), and SetupSystem().

674 {
675 #if 0
676  ppdColsm1[iCol][iRow] = dCoef;
677 #endif
678  FullMatrixHandler::PutCoef(iRow, iCol, dCoef);
679 }
virtual void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: fullmh.h:178
doublereal ** ppdColsm1
Definition: fullmh.h:72

Here is the call graph for this function:

void FullSubMatrixHandler::PutColIndex ( integer  iSubCol,
integer  iCol 
)
inlinevirtual

Implements SubMatrixHandler.

Definition at line 325 of file submat.h.

References ASSERT, FullMatrixHandler::iNumCols, and piColm1.

Referenced by ThermalCapacitance::AssJac(), ThermalSource::AssJac(), ThermalResistance::AssJac(), ModuleMDS::AssJac(), HydrodynamicPlainBearing::AssJac(), MinorLoss::AssJac(), InlineFriction::AssJac(), Pipe::AssJac(), LoadIncNorm::AssJac(), Control_valve::AssJac(), UniversalHingeJoint::AssJac(), GenelStateSpaceSISO::AssJac(), PrismaticJoint::AssJac(), Actuator::AssJac(), ModuleFMU::AssJac(), asynchronous_machine::AssJac(), GimbalRotationJoint::AssJac(), RodBezier::AssJac(), PiezoActuatorBeam2::AssJac(), Accumulator::AssJac(), BulkSpringSupport::AssJac(), Rod::AssJac(), PiezoActuatorBeam::AssJac(), Motor::AssJac(), PointSurfaceContact::AssJac(), DriveDisplacementJoint::AssJac(), ViscousBody::AssJac(), Brake::AssJac(), DriveHingeJoint::AssJac(), ThreeWayMinorLoss::AssJac(), DynamicMass::AssJac(), DeformableDispJoint::AssJac(), PlaneHingeJoint::AssJac(), DynamicVariableBody::AssJac(), BeamSliderJoint::AssJac(), Dynamic_pipe::AssJac(), AerodynamicModal::AssJac(), GenelStateSpaceMIMO::AssJac(), TotalEquation::AssJac(), DeformableJoint::AssJac(), Tank::AssJac(), TotalJoint::AssJac(), UniversalRotationJoint::AssJac(), GenelSpring::AssJac(), Control_valve2::AssJac(), ElasticAxialJoint::AssJac(), Orifice::AssJac(), PiezoActuatorVEBeam2::AssJac(), StaticMass::AssJac(), ViscoElasticRod::AssJac(), ElasticHingeJoint::AssJac(), PiezoActuatorVEBeam::AssJac(), HBeam::AssJac(), StaticVariableBody::AssJac(), AbsoluteForce::AssJac(), GenelSpringSupport::AssJac(), Beam2::AssJac(), DynamicPipe::AssJac(), DriveDisplacementPinJoint::AssJac(), Membrane4EAS::AssJac(), UniversalPinJoint::AssJac(), PlaneRotationJoint::AssJac(), Dynamic_control_valve::AssJac(), AerodynamicBody::AssJac(), Modal::AssJac(), RodWithOffset::AssJac(), GenelCrossSpringSupport::AssJac(), FollowerForce::AssJac(), ViscousAxialJoint::AssJac(), Wheel4::AssJac(), GenelCrossSpringDamperSupport::AssJac(), Beam::AssJac(), TotalReaction::AssJac(), Shell4EAS::AssJac(), DynamicBody::AssJac(), ModuleIMUConstraint::AssJac(), TotalPinJoint::AssJac(), Pressure_flow_control_valve::AssJac(), AerodynamicBeam::AssJac(), Shell4EASANS::AssJac(), GenelSpringDamperSupport::AssJac(), ViscousHingeJoint::AssJac(), FollowerCouple::AssJac(), ViscoElasticAxialJoint::AssJac(), ModalBody::AssJac(), AxialRotationJoint::AssJac(), Pressure_valve::AssJac(), StaticBody::AssJac(), AerodynamicBeam2::AssJac(), AbsoluteInternalForce::AssJac(), TotalForce::AssJac(), Flow_valve::AssJac(), ViscoElasticHingeJoint::AssJac(), LoadIncForce::AssJac(), FollowerInternalForce::AssJac(), FollowerInternalCouple::AssJac(), Rod::AssMats(), ViscousBody::AssMats(), DynamicMass::AssMats(), DeformableDispJoint::AssMats(), DynamicVariableBody::AssMats(), DeformableJoint::AssMats(), ElasticAxialJoint::AssMats(), ElasticDispJoint::AssMats(), StaticMass::AssMats(), ElasticHingeJoint::AssMats(), StaticVariableBody::AssMats(), ElasticJoint::AssMats(), ElasticDispJointInv::AssMats(), ViscousAxialJoint::AssMats(), ElasticJointInv::AssMats(), Beam::AssMats(), DynamicBody::AssMats(), ViscousHingeJoint::AssMats(), ViscoElasticAxialJoint::AssMats(), ModalBody::AssMats(), StaticBody::AssMats(), ViscoElasticHingeJoint::AssMats(), InlineFriction::InitialAssJac(), InLineJoint::InitialAssJac(), UniversalHingeJoint::InitialAssJac(), InPlaneJoint::InitialAssJac(), PrismaticJoint::InitialAssJac(), SphericalHingeJoint::InitialAssJac(), GimbalRotationJoint::InitialAssJac(), RodBezier::InitialAssJac(), PointSurfaceContact::InitialAssJac(), Rod::InitialAssJac(), DriveDisplacementJoint::InitialAssJac(), DriveHingeJoint::InitialAssJac(), PlaneHingeJoint::InitialAssJac(), DynamicVariableBody::InitialAssJac(), ViscousBody::InitialAssJac(), InLineWithOffsetJoint::InitialAssJac(), DistanceJointWithOffset::InitialAssJac(), UniversalRotationJoint::InitialAssJac(), PinJoint::InitialAssJac(), TotalEquation::InitialAssJac(), InPlaneWithOffsetJoint::InitialAssJac(), TotalJoint::InitialAssJac(), ViscoElasticRod::InitialAssJac(), ElasticAxialJoint::InitialAssJac(), ElasticDispJoint::InitialAssJac(), AbsoluteForce::InitialAssJac(), ElasticHingeJoint::InitialAssJac(), ElasticJoint::InitialAssJac(), HBeam::InitialAssJac(), DriveDisplacementPinJoint::InitialAssJac(), UniversalPinJoint::InitialAssJac(), PlaneRotationJoint::InitialAssJac(), Modal::InitialAssJac(), RodWithOffset::InitialAssJac(), Beam2::InitialAssJac(), FollowerForce::InitialAssJac(), ElasticDispJointInv::InitialAssJac(), ViscousAxialJoint::InitialAssJac(), ElasticJointInv::InitialAssJac(), TotalReaction::InitialAssJac(), DynamicBody::InitialAssJac(), Beam::InitialAssJac(), FollowerCouple::InitialAssJac(), TotalPinJoint::InitialAssJac(), ViscousHingeJoint::InitialAssJac(), ViscousJoint::InitialAssJac(), ViscousDispJoint::InitialAssJac(), ViscoElasticAxialJoint::InitialAssJac(), AxialRotationJoint::InitialAssJac(), ViscoElasticJoint::InitialAssJac(), AbsoluteInternalForce::InitialAssJac(), TotalForce::InitialAssJac(), ViscoElasticDispJoint::InitialAssJac(), PlanePinJoint::InitialAssJac(), ViscoElasticHingeJoint::InitialAssJac(), FollowerInternalForce::InitialAssJac(), FollowerInternalCouple::InitialAssJac(), main(), and SetupSystem().

325  {
326 #ifdef DEBUG
327  IsValid();
328 #endif /* DEBUG */
329 
330  ASSERT((iSubCol > 0) && (iSubCol <= iNumCols));
331 
332  piColm1[iSubCol] = iCol;
333  };
integer * piColm1
Definition: submat.h:191
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
void FullSubMatrixHandler::PutCross ( integer  iFirstRow,
integer  iFirstCol,
const Vec3 v 
)

Definition at line 573 of file submat.cc.

References ASSERT, FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, Vec3::pGetVec(), FullMatrixHandler::ppdColsm1, V1, V2, and V3.

575 {
576  /* iFirstRow e iFirstCol sono gli indici effettivi di riga e colonna -1
577  * es. per il primo coefficiente:
578  * iRow = 0, iCol = 0 */
579 
580 #ifdef DEBUG
581  IsValid();
582 
583  ASSERT(iFirstRow >= 0);
584  ASSERT(iFirstRow <= iNumRows - 3);
585  ASSERT(iFirstCol >= 0);
586  ASSERT(iFirstCol <= iNumCols - 3);
587 #endif /* DEBUG */
588 
589  const doublereal *pdv = v.pGetVec();
590 
591  ppdColsm1[iFirstCol + 1][ iFirstRow + 2] = -pdv[V3];
592  ppdColsm1[iFirstCol + 1][ iFirstRow + 3] = pdv[V2];
593 
594  ppdColsm1[iFirstCol + 2][ iFirstRow + 1] = pdv[V3];
595  ppdColsm1[iFirstCol + 2][ iFirstRow + 3] = -pdv[V1];
596 
597  ppdColsm1[iFirstCol + 3][ iFirstRow + 1] = -pdv[V2];
598  ppdColsm1[iFirstCol + 3][ iFirstRow + 2] = pdv[V1];
599 }
integer iNumRows
Definition: fullmh.h:63
Definition: matvec3.h:50
Definition: matvec3.h:51
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
Definition: matvec3.h:49
const doublereal * pGetVec(void) const
Definition: matvec3.h:192
doublereal ** ppdColsm1
Definition: fullmh.h:72
double doublereal
Definition: colamd.c:52

Here is the call graph for this function:

void FullSubMatrixHandler::PutDiag ( integer  iFirstRow,
integer  iFirstCol,
const Vec3 v 
)

Definition at line 523 of file submat.cc.

References ASSERT, FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, Vec3::pGetVec(), FullMatrixHandler::ppdColsm1, V1, V2, and V3.

525 {
526  /* iFirstRow e iFirstCol sono gli indici effettivi di riga e colonna -1
527  * es. per il primo coefficiente:
528  * iRow = 0, iCol = 0 */
529 
530 #ifdef DEBUG
531  IsValid();
532 
533  ASSERT(iFirstRow >= 0);
534  ASSERT(iFirstRow <= iNumRows - 3);
535  ASSERT(iFirstCol >= 0);
536  ASSERT(iFirstCol <= iNumCols - 3);
537 #endif /* DEBUG */
538 
539  const doublereal *pdv = v.pGetVec();
540 
541  ppdColsm1[iFirstCol + 1][iFirstRow + 1] = pdv[V1];
542  ppdColsm1[iFirstCol + 2][iFirstRow + 2] = pdv[V2];
543  ppdColsm1[iFirstCol + 3][iFirstRow + 3] = pdv[V3];
544 }
integer iNumRows
Definition: fullmh.h:63
Definition: matvec3.h:50
Definition: matvec3.h:51
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
Definition: matvec3.h:49
const doublereal * pGetVec(void) const
Definition: matvec3.h:192
doublereal ** ppdColsm1
Definition: fullmh.h:72
double doublereal
Definition: colamd.c:52

Here is the call graph for this function:

void FullSubMatrixHandler::PutDiag ( integer  iFirstRow,
integer  iFirstCol,
const doublereal v 
)

Definition at line 549 of file submat.cc.

References ASSERT, FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, and FullMatrixHandler::ppdColsm1.

551 {
552  /* iFirstRow e iFirstCol sono gli indici effettivi di riga e colonna -1
553  * es. per il primo coefficiente:
554  * iRow = 0, iCol = 0 */
555 
556 #ifdef DEBUG
557  IsValid();
558 
559  ASSERT(iFirstRow >= 0);
560  ASSERT(iFirstRow <= iNumRows - 3);
561  ASSERT(iFirstCol >= 0);
562  ASSERT(iFirstCol <= iNumCols - 3);
563 #endif /* DEBUG */
564 
565  ppdColsm1[iFirstCol + 1][iFirstRow + 1] = d;
566  ppdColsm1[iFirstCol + 2][iFirstRow + 2] = d;
567  ppdColsm1[iFirstCol + 3][iFirstRow + 3] = d;
568 }
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
doublereal ** ppdColsm1
Definition: fullmh.h:72
void FullSubMatrixHandler::PutRowIndex ( integer  iSubRow,
integer  iRow 
)
inlinevirtual

Implements SubMatrixHandler.

Definition at line 311 of file submat.h.

References ASSERT, FullMatrixHandler::iNumRows, and piRowm1.

Referenced by ThermalCapacitance::AssJac(), ThermalSource::AssJac(), ThermalResistance::AssJac(), ModuleMDS::AssJac(), HydrodynamicPlainBearing::AssJac(), MinorLoss::AssJac(), InlineFriction::AssJac(), Pipe::AssJac(), LoadIncNorm::AssJac(), Control_valve::AssJac(), UniversalHingeJoint::AssJac(), GenelStateSpaceSISO::AssJac(), PrismaticJoint::AssJac(), Actuator::AssJac(), ModuleFMU::AssJac(), asynchronous_machine::AssJac(), GimbalRotationJoint::AssJac(), RodBezier::AssJac(), PiezoActuatorBeam2::AssJac(), Accumulator::AssJac(), BulkSpringSupport::AssJac(), Rod::AssJac(), PiezoActuatorBeam::AssJac(), Motor::AssJac(), PointSurfaceContact::AssJac(), DriveDisplacementJoint::AssJac(), ViscousBody::AssJac(), Brake::AssJac(), DriveHingeJoint::AssJac(), ThreeWayMinorLoss::AssJac(), DynamicMass::AssJac(), DeformableDispJoint::AssJac(), PlaneHingeJoint::AssJac(), DynamicVariableBody::AssJac(), BeamSliderJoint::AssJac(), Dynamic_pipe::AssJac(), AerodynamicModal::AssJac(), GenelStateSpaceMIMO::AssJac(), TotalEquation::AssJac(), DeformableJoint::AssJac(), Tank::AssJac(), TotalJoint::AssJac(), UniversalRotationJoint::AssJac(), GenelSpring::AssJac(), Control_valve2::AssJac(), ElasticAxialJoint::AssJac(), Orifice::AssJac(), PiezoActuatorVEBeam2::AssJac(), StaticMass::AssJac(), ViscoElasticRod::AssJac(), ElasticHingeJoint::AssJac(), PiezoActuatorVEBeam::AssJac(), HBeam::AssJac(), StaticVariableBody::AssJac(), AbsoluteForce::AssJac(), GenelSpringSupport::AssJac(), Beam2::AssJac(), DynamicPipe::AssJac(), DriveDisplacementPinJoint::AssJac(), Membrane4EAS::AssJac(), UniversalPinJoint::AssJac(), PlaneRotationJoint::AssJac(), Dynamic_control_valve::AssJac(), AerodynamicBody::AssJac(), Modal::AssJac(), RodWithOffset::AssJac(), GenelCrossSpringSupport::AssJac(), FollowerForce::AssJac(), ViscousAxialJoint::AssJac(), Wheel4::AssJac(), GenelCrossSpringDamperSupport::AssJac(), Beam::AssJac(), TotalReaction::AssJac(), Shell4EAS::AssJac(), DynamicBody::AssJac(), ModuleIMUConstraint::AssJac(), TotalPinJoint::AssJac(), Pressure_flow_control_valve::AssJac(), AerodynamicBeam::AssJac(), Shell4EASANS::AssJac(), GenelSpringDamperSupport::AssJac(), ViscousHingeJoint::AssJac(), FollowerCouple::AssJac(), ViscoElasticAxialJoint::AssJac(), ModalBody::AssJac(), AxialRotationJoint::AssJac(), Pressure_valve::AssJac(), StaticBody::AssJac(), AerodynamicBeam2::AssJac(), AbsoluteInternalForce::AssJac(), TotalForce::AssJac(), Flow_valve::AssJac(), ViscoElasticHingeJoint::AssJac(), LoadIncForce::AssJac(), FollowerInternalForce::AssJac(), FollowerInternalCouple::AssJac(), Rod::AssMats(), ViscousBody::AssMats(), DynamicMass::AssMats(), DeformableDispJoint::AssMats(), DynamicVariableBody::AssMats(), DeformableJoint::AssMats(), ElasticAxialJoint::AssMats(), ElasticDispJoint::AssMats(), StaticMass::AssMats(), ElasticHingeJoint::AssMats(), StaticVariableBody::AssMats(), ElasticJoint::AssMats(), ElasticDispJointInv::AssMats(), ViscousAxialJoint::AssMats(), ElasticJointInv::AssMats(), Beam::AssMats(), DynamicBody::AssMats(), ViscousHingeJoint::AssMats(), ViscoElasticAxialJoint::AssMats(), ModalBody::AssMats(), StaticBody::AssMats(), ViscoElasticHingeJoint::AssMats(), InlineFriction::InitialAssJac(), InLineJoint::InitialAssJac(), UniversalHingeJoint::InitialAssJac(), InPlaneJoint::InitialAssJac(), PrismaticJoint::InitialAssJac(), SphericalHingeJoint::InitialAssJac(), GimbalRotationJoint::InitialAssJac(), RodBezier::InitialAssJac(), PointSurfaceContact::InitialAssJac(), Rod::InitialAssJac(), DriveDisplacementJoint::InitialAssJac(), DriveHingeJoint::InitialAssJac(), PlaneHingeJoint::InitialAssJac(), DynamicVariableBody::InitialAssJac(), ViscousBody::InitialAssJac(), InLineWithOffsetJoint::InitialAssJac(), DistanceJointWithOffset::InitialAssJac(), UniversalRotationJoint::InitialAssJac(), PinJoint::InitialAssJac(), TotalEquation::InitialAssJac(), InPlaneWithOffsetJoint::InitialAssJac(), TotalJoint::InitialAssJac(), ViscoElasticRod::InitialAssJac(), ElasticAxialJoint::InitialAssJac(), ElasticDispJoint::InitialAssJac(), AbsoluteForce::InitialAssJac(), ElasticHingeJoint::InitialAssJac(), ElasticJoint::InitialAssJac(), HBeam::InitialAssJac(), DriveDisplacementPinJoint::InitialAssJac(), UniversalPinJoint::InitialAssJac(), PlaneRotationJoint::InitialAssJac(), Modal::InitialAssJac(), RodWithOffset::InitialAssJac(), Beam2::InitialAssJac(), FollowerForce::InitialAssJac(), ElasticDispJointInv::InitialAssJac(), ViscousAxialJoint::InitialAssJac(), ElasticJointInv::InitialAssJac(), TotalReaction::InitialAssJac(), DynamicBody::InitialAssJac(), Beam::InitialAssJac(), FollowerCouple::InitialAssJac(), TotalPinJoint::InitialAssJac(), ViscousHingeJoint::InitialAssJac(), ViscousJoint::InitialAssJac(), ViscousDispJoint::InitialAssJac(), ViscoElasticAxialJoint::InitialAssJac(), AxialRotationJoint::InitialAssJac(), ViscoElasticJoint::InitialAssJac(), AbsoluteInternalForce::InitialAssJac(), TotalForce::InitialAssJac(), ViscoElasticDispJoint::InitialAssJac(), PlanePinJoint::InitialAssJac(), ViscoElasticHingeJoint::InitialAssJac(), FollowerInternalForce::InitialAssJac(), FollowerInternalCouple::InitialAssJac(), main(), and SetupSystem().

311  {
312 #ifdef DEBUG
313  IsValid();
314 #endif /* DEBUG */
315 
316  ASSERT((iSubRow > 0) && (iSubRow <= iNumRows));
317 
318  piRowm1[iSubRow] = iRow;
319  };
integer * piRowm1
Definition: submat.h:189
integer iNumRows
Definition: fullmh.h:63
#define ASSERT(expression)
Definition: colamd.c:977
void FullSubMatrixHandler::PutT ( integer  iRow,
integer  iCol,
const Vec3 v 
)

Definition at line 239 of file submat.cc.

References FullMatrixHandler::PutT().

Referenced by InlineFriction::AssJac(), asynchronous_machine::AssJac(), Motor::AssJac(), and InlineFriction::InitialAssJac().

240 {
241  FullMatrixHandler::PutT(iRow, iCol, v);
242 }
void PutT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1338

Here is the call graph for this function:

void FullSubMatrixHandler::PutT ( integer  iRow,
integer  iCol,
const Mat3x3 m 
)

Definition at line 460 of file submat.cc.

References FullMatrixHandler::PutT().

461 {
462  FullMatrixHandler::PutT(iRow, iCol, m);
463 }
void PutT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1338

Here is the call graph for this function:

void FullSubMatrixHandler::PutT ( integer  iRow,
integer  iCol,
const Mat3xN m 
)

Definition at line 496 of file submat.cc.

References FullMatrixHandler::PutT().

497 {
498  FullMatrixHandler::PutT(iRow, iCol, m);
499 }
void PutT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1338

Here is the call graph for this function:

void FullSubMatrixHandler::PutT ( integer  iRow,
integer  iCol,
const FullMatrixHandler source 
)

Definition at line 933 of file submat.cc.

References FullMatrixHandler::PutT().

936 {
937  FullMatrixHandler::PutT(iRow, iCol, source);
938 }
void PutT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1338

Here is the call graph for this function:

void FullSubMatrixHandler::PutT ( integer  iRow,
integer  iCol,
const FullMatrixHandler source,
const doublereal  dCoef 
)

Definition at line 959 of file submat.cc.

References FullMatrixHandler::PutT().

963 {
964  FullMatrixHandler::PutT(iRow, iCol, source, dCoef);
965 }
void PutT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1338

Here is the call graph for this function:

void FullSubMatrixHandler::Reset ( void  )
virtual

Reimplemented from FullMatrixHandler.

Definition at line 115 of file submat.cc.

References FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piRowm1, and FullMatrixHandler::Reset().

Referenced by ResizeReset().

116 {
117 #ifdef DEBUG
118  IsValid();
119 #endif /* DEBUG */
120 
122 
123 #if 0
124  /*
125  * this is not strictly required, because all the indices should
126  * be explicitly set before the matrix is used
127  */
128  for (integer i = iNumRows + iNumCols; i > 0; i--) {
129  piRowm1[i] = 0;
130  }
131 #endif
132 }
integer * piRowm1
Definition: submat.h:189
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
long int integer
Definition: colamd.c:51
void Reset(void)
Definition: fullmh.cc:44

Here is the call graph for this function:

void FullSubMatrixHandler::Resize ( integer  iNewRow,
integer  iNewCol 
)
virtual

Reimplemented from FullMatrixHandler.

Definition at line 138 of file submat.cc.

References ASSERT, FullMatrixHandler::iMaxCols, FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, FullMatrixHandler::iRawSize, iVecSize, MBDYN_EXCEPT_ARGS, piColm1, piRowm1, and FullMatrixHandler::Resize().

Referenced by ModuleMDS::AssJac(), MinorLoss::AssJac(), Control_valve::AssJac(), Accumulator::AssJac(), ThreeWayMinorLoss::AssJac(), Tank::AssJac(), Orifice::AssJac(), Pressure_valve::AssJac(), Flow_valve::AssJac(), and ResizeReset().

138  {
139 #ifdef DEBUG
140  IsValid();
141 #endif /* DEBUG */
142 
143  ASSERT(iNewRow > 0);
144  ASSERT(iNewCol > 0);
145  ASSERT(iNewRow + iNewCol <= iVecSize);
146  ASSERT(iNewRow*iNewCol <= iRawSize);
147 
148  if (iNewRow <= 0
149  || iNewCol <= 0
150  || iNewRow + iNewCol > iVecSize
151  || iNewRow*iNewCol > iRawSize
152  || iNewCol > iMaxCols) {
153  silent_cerr("FullSubMatrixHandler::Resize() - error"
154  << std::endl);
155 
157  }
158 
159  iNumRows = iNewRow;
160  iNumCols = iNewCol;
161 
162  /*
163  * FIXME: don't call FullMatrixHandler::Resize, because
164  * we know there's room enough and we don't want to
165  * waste time regenerating support stuff; we simply
166  * use a portion of the matrix as is.
167  */
168 #if 0
169  FullMatrixHandler::Resize(iNewRow, iNewCol);
170 
171  ASSERT(piRowm1 != NULL);
172  piColm1 = piRowm1 + iNewRow;
173 #endif
174 
175 #ifdef DEBUG
176  IsValid();
177 #endif /* DEBUG */
178 }
integer * piRowm1
Definition: submat.h:189
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
integer iMaxCols
Definition: fullmh.h:67
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
virtual void Resize(integer iNewRows, integer iNewCols)
Definition: fullmh.cc:174
integer iRawSize
Definition: fullmh.h:66
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
integer iVecSize
Definition: submat.h:186

Here is the call graph for this function:

void FullSubMatrixHandler::ResizeReset ( integer  ir,
integer  ic 
)
virtual

Implements SubMatrixHandler.

Definition at line 182 of file submat.cc.

References Reset(), and Resize().

Referenced by ass_jac(), ass_mats(), ThermalCapacitance::AssJac(), ThermalSource::AssJac(), ThermalResistance::AssJac(), HydrodynamicPlainBearing::AssJac(), InlineFriction::AssJac(), Pipe::AssJac(), LoadIncNorm::AssJac(), UniversalHingeJoint::AssJac(), GenelStateSpaceSISO::AssJac(), PrismaticJoint::AssJac(), Actuator::AssJac(), ModuleFMU::AssJac(), asynchronous_machine::AssJac(), GimbalRotationJoint::AssJac(), RodBezier::AssJac(), PiezoActuatorBeam2::AssJac(), BulkSpringSupport::AssJac(), Rod::AssJac(), PiezoActuatorBeam::AssJac(), Motor::AssJac(), PointSurfaceContact::AssJac(), DriveDisplacementJoint::AssJac(), ViscousBody::AssJac(), Brake::AssJac(), DriveHingeJoint::AssJac(), DynamicMass::AssJac(), DeformableDispJoint::AssJac(), PlaneHingeJoint::AssJac(), DynamicVariableBody::AssJac(), BeamSliderJoint::AssJac(), Dynamic_pipe::AssJac(), AerodynamicModal::AssJac(), GenelStateSpaceMIMO::AssJac(), TotalEquation::AssJac(), DeformableJoint::AssJac(), TotalJoint::AssJac(), UniversalRotationJoint::AssJac(), GenelSpring::AssJac(), Control_valve2::AssJac(), ElasticAxialJoint::AssJac(), PiezoActuatorVEBeam2::AssJac(), StaticMass::AssJac(), ViscoElasticRod::AssJac(), ElasticHingeJoint::AssJac(), PiezoActuatorVEBeam::AssJac(), HBeam::AssJac(), AbsoluteForce::AssJac(), StaticVariableBody::AssJac(), GenelSpringSupport::AssJac(), Beam2::AssJac(), DynamicPipe::AssJac(), DriveDisplacementPinJoint::AssJac(), Membrane4EAS::AssJac(), UniversalPinJoint::AssJac(), PlaneRotationJoint::AssJac(), Dynamic_control_valve::AssJac(), AerodynamicBody::AssJac(), Modal::AssJac(), RodWithOffset::AssJac(), GenelCrossSpringSupport::AssJac(), FollowerForce::AssJac(), ViscousAxialJoint::AssJac(), Wheel4::AssJac(), GenelCrossSpringDamperSupport::AssJac(), Beam::AssJac(), TotalReaction::AssJac(), Shell4EAS::AssJac(), DynamicBody::AssJac(), ModuleIMUConstraint::AssJac(), TotalPinJoint::AssJac(), Pressure_flow_control_valve::AssJac(), AerodynamicBeam::AssJac(), Shell4EASANS::AssJac(), GenelSpringDamperSupport::AssJac(), ViscousHingeJoint::AssJac(), FollowerCouple::AssJac(), ViscoElasticAxialJoint::AssJac(), ModalBody::AssJac(), AxialRotationJoint::AssJac(), StaticBody::AssJac(), AerodynamicBeam2::AssJac(), AbsoluteInternalForce::AssJac(), TotalForce::AssJac(), ViscoElasticHingeJoint::AssJac(), LoadIncForce::AssJac(), FollowerInternalForce::AssJac(), FollowerInternalCouple::AssJac(), Rod::AssMats(), ViscousBody::AssMats(), DynamicMass::AssMats(), DeformableDispJoint::AssMats(), DynamicVariableBody::AssMats(), DeformableJoint::AssMats(), ElasticAxialJoint::AssMats(), ElasticDispJoint::AssMats(), StaticMass::AssMats(), ElasticHingeJoint::AssMats(), StaticVariableBody::AssMats(), ElasticJoint::AssMats(), ElasticDispJointInv::AssMats(), ViscousAxialJoint::AssMats(), ElasticJointInv::AssMats(), Beam::AssMats(), DynamicBody::AssMats(), ViscousHingeJoint::AssMats(), ViscoElasticAxialJoint::AssMats(), ModalBody::AssMats(), StaticBody::AssMats(), ViscoElasticHingeJoint::AssMats(), initial_ass_jac(), InlineFriction::InitialAssJac(), InLineJoint::InitialAssJac(), UniversalHingeJoint::InitialAssJac(), InPlaneJoint::InitialAssJac(), PrismaticJoint::InitialAssJac(), SphericalHingeJoint::InitialAssJac(), RodBezier::InitialAssJac(), GimbalRotationJoint::InitialAssJac(), PointSurfaceContact::InitialAssJac(), Rod::InitialAssJac(), DriveDisplacementJoint::InitialAssJac(), DriveHingeJoint::InitialAssJac(), PlaneHingeJoint::InitialAssJac(), DynamicVariableBody::InitialAssJac(), ViscousBody::InitialAssJac(), InLineWithOffsetJoint::InitialAssJac(), DistanceJointWithOffset::InitialAssJac(), UniversalRotationJoint::InitialAssJac(), PinJoint::InitialAssJac(), TotalEquation::InitialAssJac(), InPlaneWithOffsetJoint::InitialAssJac(), TotalJoint::InitialAssJac(), ViscoElasticRod::InitialAssJac(), ElasticAxialJoint::InitialAssJac(), ElasticDispJoint::InitialAssJac(), AbsoluteForce::InitialAssJac(), ElasticHingeJoint::InitialAssJac(), ElasticJoint::InitialAssJac(), HBeam::InitialAssJac(), DriveDisplacementPinJoint::InitialAssJac(), UniversalPinJoint::InitialAssJac(), PlaneRotationJoint::InitialAssJac(), Modal::InitialAssJac(), RodWithOffset::InitialAssJac(), Beam2::InitialAssJac(), FollowerForce::InitialAssJac(), ElasticDispJointInv::InitialAssJac(), ViscousAxialJoint::InitialAssJac(), ElasticJointInv::InitialAssJac(), TotalReaction::InitialAssJac(), DynamicBody::InitialAssJac(), Beam::InitialAssJac(), TotalPinJoint::InitialAssJac(), FollowerCouple::InitialAssJac(), ViscousHingeJoint::InitialAssJac(), ViscousJoint::InitialAssJac(), ViscousDispJoint::InitialAssJac(), ViscoElasticAxialJoint::InitialAssJac(), AxialRotationJoint::InitialAssJac(), ViscoElasticJoint::InitialAssJac(), AbsoluteInternalForce::InitialAssJac(), TotalForce::InitialAssJac(), ViscoElasticDispJoint::InitialAssJac(), PlanePinJoint::InitialAssJac(), FollowerInternalForce::InitialAssJac(), ViscoElasticHingeJoint::InitialAssJac(), FollowerInternalCouple::InitialAssJac(), main(), and SetupSystem().

183 {
186 }
void Resize(integer iNewRow, integer iNewCol)
Definition: submat.cc:138
void Reset(void)
Definition: submat.cc:115

Here is the call graph for this function:

void FullSubMatrixHandler::Sub ( integer  iRow,
integer  iCol,
const Vec3 v 
)

Definition at line 215 of file submat.cc.

References FullMatrixHandler::Sub().

Referenced by HydrodynamicPlainBearing::AssJac(), UniversalHingeJoint::AssJac(), PrismaticJoint::AssJac(), Actuator::AssJac(), RodBezier::AssJac(), PlaneHingeJoint::AssJac(), BeamSliderJoint::AssJac(), TotalJoint::AssJac(), UniversalRotationJoint::AssJac(), ViscoElasticRod::AssJac(), AbsoluteForce::AssJac(), UniversalPinJoint::AssJac(), PlaneRotationJoint::AssJac(), AerodynamicBody::AssJac(), Modal::AssJac(), RodWithOffset::AssJac(), TotalReaction::AssJac(), Shell4EAS::AssJac(), ModuleIMUConstraint::AssJac(), AerodynamicBeam::AssJac(), AxialRotationJoint::AssJac(), AerodynamicBeam2::AssJac(), AbsoluteInternalForce::AssJac(), TotalForce::AssJac(), LoadIncForce::AssJac(), FollowerInternalForce::AssJac(), FollowerInternalCouple::AssJac(), GimbalRotationJoint::AssMat(), DriveDisplacementJoint::AssMat(), DriveHingeJoint::AssMat(), PointSurfaceContact::AssMat(), Rod::AssMat(), DriveDisplacementPinJoint::AssMat(), DeformableJoint::AssMatCommon(), DeformableJoint::AssMatElastic(), DeformableDispJoint::AssMatF(), DeformableDispJoint::AssMatFDE(), DeformableDispJoint::AssMatFDEPrime(), DeformableAxialJoint::AssMatM(), DeformableHingeJoint::AssMatM(), DeformableAxialJoint::AssMatMDE(), DeformableHingeJoint::AssMatMDE(), DeformableAxialJoint::AssMatMDEPrime(), DeformableHingeJoint::AssMatMDEPrime(), DeformableHingeJoint::AssMatMDEPrimeInv(), DeformableHingeJoint::AssMatMInv(), ViscousBody::AssMats(), DynamicVariableBody::AssMats(), DynamicBody::AssMats(), ModalBody::AssMats(), VariableBody::AssMatsRBK_int(), Body::AssMatsRBK_int(), DeformableJoint::AssMatViscous(), PiezoActuatorBeam::AssStiffnessMat(), PiezoActuatorBeam2::AssStiffnessMat(), Beam2::AssStiffnessMat(), HBeam::AssStiffnessMat(), PiezoActuatorVEBeam2::AssStiffnessMat(), PiezoActuatorVEBeam::AssStiffnessMat(), Beam::AssStiffnessMat(), ViscoElasticBeam2::AssStiffnessMat(), ViscoElasticBeam::AssStiffnessMat(), InLineJoint::InitialAssJac(), UniversalHingeJoint::InitialAssJac(), InPlaneJoint::InitialAssJac(), PrismaticJoint::InitialAssJac(), SphericalHingeJoint::InitialAssJac(), RodBezier::InitialAssJac(), DriveDisplacementJoint::InitialAssJac(), DriveHingeJoint::InitialAssJac(), PlaneHingeJoint::InitialAssJac(), InLineWithOffsetJoint::InitialAssJac(), DistanceJointWithOffset::InitialAssJac(), UniversalRotationJoint::InitialAssJac(), InPlaneWithOffsetJoint::InitialAssJac(), TotalJoint::InitialAssJac(), ViscoElasticRod::InitialAssJac(), AbsoluteForce::InitialAssJac(), DriveDisplacementPinJoint::InitialAssJac(), PlaneRotationJoint::InitialAssJac(), Modal::InitialAssJac(), RodWithOffset::InitialAssJac(), ViscousAxialJoint::InitialAssJac(), TotalReaction::InitialAssJac(), ViscousHingeJoint::InitialAssJac(), ViscousDispJoint::InitialAssJac(), ViscoElasticAxialJoint::InitialAssJac(), AxialRotationJoint::InitialAssJac(), AbsoluteInternalForce::InitialAssJac(), TotalForce::InitialAssJac(), ViscoElasticDispJoint::InitialAssJac(), FollowerInternalForce::InitialAssJac(), ViscoElasticHingeJoint::InitialAssJac(), and FollowerInternalCouple::InitialAssJac().

216 {
217  FullMatrixHandler::Sub(iRow, iCol, v);
218 }
void Sub(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1076

Here is the call graph for this function:

void FullSubMatrixHandler::Sub ( integer  iRow,
integer  iCol,
const Mat3x3 m 
)

Definition at line 442 of file submat.cc.

References FullMatrixHandler::Sub().

443 {
444  FullMatrixHandler::Sub(iRow, iCol, m);
445 }
void Sub(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1076

Here is the call graph for this function:

void FullSubMatrixHandler::Sub ( integer  iRow,
integer  iCol,
const Mat3xN m 
)

Definition at line 472 of file submat.cc.

References FullMatrixHandler::Sub().

473 {
474  FullMatrixHandler::Sub(iRow, iCol, m);
475 }
void Sub(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1076

Here is the call graph for this function:

void FullSubMatrixHandler::Sub ( integer  iRow,
integer  iCol,
const MatNx3 m 
)

Definition at line 509 of file submat.cc.

References FullMatrixHandler::Sub().

510 {
511  FullMatrixHandler::Sub(iRow, iCol, m);
512 }
void Sub(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1076

Here is the call graph for this function:

void FullSubMatrixHandler::Sub ( integer  iRow,
integer  iCol,
const FullMatrixHandler source 
)

Definition at line 874 of file submat.cc.

References FullMatrixHandler::Sub().

877 {
878  FullMatrixHandler::Sub(iRow, iCol, source);
879 }
void Sub(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1076

Here is the call graph for this function:

void FullSubMatrixHandler::Sub ( integer  iRow,
integer  iCol,
const FullMatrixHandler source,
const doublereal  dCoef 
)

Definition at line 899 of file submat.cc.

References FullMatrixHandler::Sub().

903 {
904  FullMatrixHandler::Sub(iRow, iCol, source, dCoef);
905 }
void Sub(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1076

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::SubFrom ( MatrixHandler MH) const
virtual

Implements SubMatrixHandler.

Reimplemented in VariableSubMatrixHandler.

Definition at line 720 of file submat.cc.

References ASSERT, c, MatrixHandler::iGetNumCols(), MatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

Referenced by main(), and VariableSubMatrixHandler::SubFrom().

721 {
722 #ifdef DEBUG
723  IsValid();
724  MH.IsValid();
725 #endif /* DEBUG */
726 
727  ASSERT(MH.iGetNumRows() >= iNumRows);
728  ASSERT(MH.iGetNumCols() >= iNumCols);
729 
730  for (integer c = iNumCols; c > 0; c--) {
731  ASSERT(piColm1[c] > 0);
732  ASSERT(piColm1[c] <= MH.iGetNumCols());
733 
734  for (integer r = iNumRows; r > 0; r--) {
735  ASSERT(piRowm1[r] > 0);
736  ASSERT(piRowm1[r] <= MH.iGetNumRows());
737 
738  MH(piRowm1[r], piColm1[c]) -= ppdColsm1[c][r];
739  }
740  }
741 
742  return MH;
743 }
integer * piRowm1
Definition: submat.h:189
virtual integer iGetNumCols(void) const =0
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const =0

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::SubFrom ( FullMatrixHandler MH) const

Definition at line 776 of file submat.cc.

References ASSERT, c, FullMatrixHandler::iGetNumCols(), FullMatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

777 {
778 #ifdef DEBUG
779  IsValid();
780  MH.IsValid();
781 #endif /* DEBUG */
782 
783  ASSERT(MH.iGetNumRows() >= iNumRows);
784  ASSERT(MH.iGetNumCols() >= iNumCols);
785 
786  doublereal **ppd = MH.ppdColsm1;
787 
788  for (integer c = iNumCols; c > 0; c--) {
789  ASSERT(piColm1[c] > 0);
790  ASSERT(piColm1[c] <= MH.iGetNumCols());
791 
792  for (integer r = iNumRows; r > 0; r--) {
793  ASSERT(piRowm1[r] > 0);
794  ASSERT(piRowm1[r] <= MH.iGetNumRows());
795 
796  ppd[piColm1[c]][piRowm1[r]] -= ppdColsm1[c][r];
797  }
798  }
799 
800  return MH;
801 };
integer * piRowm1
Definition: submat.h:189
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
virtual integer iGetNumCols(void) const
Definition: fullmh.h:229
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const
Definition: fullmh.h:225

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::SubFromT ( MatrixHandler MH) const
virtual

Implements SubMatrixHandler.

Reimplemented in VariableSubMatrixHandler.

Definition at line 748 of file submat.cc.

References ASSERT, c, MatrixHandler::iGetNumCols(), MatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

Referenced by main(), and VariableSubMatrixHandler::SubFromT().

749 {
750 #ifdef DEBUG
751  IsValid();
752  MH.IsValid();
753 #endif /* DEBUG */
754 
755  ASSERT(MH.iGetNumRows() >= iNumCols);
756  ASSERT(MH.iGetNumCols() >= iNumRows);
757 
758  for (integer c = iNumCols; c > 0; c--) {
759  ASSERT(piColm1[c] > 0);
760  ASSERT(piColm1[c] <= MH.iGetNumRows());
761 
762  for (integer r = iNumRows; r > 0; r--) {
763  ASSERT(piRowm1[r] > 0);
764  ASSERT(piRowm1[r] <= MH.iGetNumCols());
765 
766  MH(piColm1[c], piRowm1[r]) -= ppdColsm1[c][r];
767  }
768  }
769 
770  return MH;
771 }
integer * piRowm1
Definition: submat.h:189
virtual integer iGetNumCols(void) const =0
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const =0

Here is the call graph for this function:

MatrixHandler & FullSubMatrixHandler::SubFromT ( FullMatrixHandler MH) const

Definition at line 806 of file submat.cc.

References ASSERT, c, FullMatrixHandler::iGetNumCols(), FullMatrixHandler::iGetNumRows(), FullMatrixHandler::iNumCols, FullMatrixHandler::iNumRows, piColm1, piRowm1, and FullMatrixHandler::ppdColsm1.

807 {
808 #ifdef DEBUG
809  IsValid();
810  MH.IsValid();
811 #endif /* DEBUG */
812 
813  ASSERT(MH.iGetNumRows() >= iNumCols);
814  ASSERT(MH.iGetNumCols() >= iNumRows);
815 
816  doublereal **ppd = MH.ppdColsm1;
817 
818  for (integer c = iNumCols; c > 0; c--) {
819  ASSERT(piColm1[c] > 0);
820  ASSERT(piColm1[c] <= MH.iGetNumRows());
821 
822  for (integer r = iNumRows; r > 0; r--) {
823  ASSERT(piRowm1[r] > 0);
824  ASSERT(piRowm1[r] <= MH.iGetNumCols());
825 
826  ppd[piRowm1[r]][piColm1[c]] -= ppdColsm1[c][r];
827  }
828  }
829 
830  return MH;
831 };
integer * piRowm1
Definition: submat.h:189
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
virtual integer iGetNumCols(void) const
Definition: fullmh.h:229
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual integer iGetNumRows(void) const
Definition: fullmh.h:225

Here is the call graph for this function:

void FullSubMatrixHandler::SubT ( integer  iRow,
integer  iCol,
const Vec3 v 
)

Definition at line 233 of file submat.cc.

References FullMatrixHandler::SubT().

Referenced by TotalEquation::AssJac(), TotalJoint::AssJac(), Modal::AssJac(), TotalEquation::InitialAssJac(), TotalJoint::InitialAssJac(), Modal::InitialAssJac(), and TotalReaction::InitialAssJac().

234 {
235  FullMatrixHandler::SubT(iRow, iCol, v);
236 }
void SubT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1301

Here is the call graph for this function:

void FullSubMatrixHandler::SubT ( integer  iRow,
integer  iCol,
const Mat3x3 m 
)

Definition at line 448 of file submat.cc.

References FullMatrixHandler::SubT().

449 {
450  FullMatrixHandler::SubT(iRow, iCol, m);
451 }
void SubT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1301

Here is the call graph for this function:

void FullSubMatrixHandler::SubT ( integer  iRow,
integer  iCol,
const Mat3xN m 
)

Definition at line 490 of file submat.cc.

References FullMatrixHandler::SubT().

491 {
492  FullMatrixHandler::SubT(iRow, iCol, m);
493 }
void SubT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1301

Here is the call graph for this function:

void FullSubMatrixHandler::SubT ( integer  iRow,
integer  iCol,
const FullMatrixHandler source 
)

Definition at line 925 of file submat.cc.

References FullMatrixHandler::SubT().

928 {
929  FullMatrixHandler::SubT(iRow, iCol, source);
930 }
void SubT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1301

Here is the call graph for this function:

void FullSubMatrixHandler::SubT ( integer  iRow,
integer  iCol,
const FullMatrixHandler source,
const doublereal  dCoef 
)

Definition at line 950 of file submat.cc.

References FullMatrixHandler::SubT().

954 {
955  FullMatrixHandler::SubT(iRow, iCol, source, dCoef);
956 }
void SubT(integer iRow, integer iCol, const FullMatrixHandler &source)
Definition: fullmh.cc:1301

Here is the call graph for this function:

Friends And Related Function Documentation

friend class NaiveMatrixHandler
friend

Definition at line 180 of file submat.h.

friend class NaivePermMatrixHandler
friend

Definition at line 181 of file submat.h.

std::ostream& operator<< ( std::ostream &  out,
const FullSubMatrixHandler m 
)
friend

Definition at line 836 of file submat.cc.

837 {
838 #ifdef DEBUG
839  m.IsValid();
840 #endif /* DEBUG */
841 
842  ASSERT(m.iNumRows > 0);
843  ASSERT(m.iNumCols > 0);
844  ASSERT(m.piRowm1 != NULL);
845  ASSERT(m.piColm1 != NULL);
846  ASSERT(m.ppdColsm1 != NULL);
847 
848  out << std::setw(12) << "";
849  for (integer c = 1; c <= m.iNumCols; c++) {
850  out << std::setw(12) << m.piColm1[c];
851  }
852  out << std::endl << std::endl;
853 
854  for (integer r = 1; r <= m.iNumRows; r++) {
855  out << std::setw(12) << m.piRowm1[r];
856  for (integer c = 1; c <= m.iNumCols; c++) {
857  out << std::setw(12) << m.ppdColsm1[c][r];
858  }
859  out << std::endl;
860  }
861 
862  return out << std::endl;
863 }
integer * piRowm1
Definition: submat.h:189
integer * piColm1
Definition: submat.h:191
integer iNumRows
Definition: fullmh.h:63
integer iNumCols
Definition: fullmh.h:64
#define ASSERT(expression)
Definition: colamd.c:977
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal ** ppdColsm1
Definition: fullmh.h:72
long int integer
Definition: colamd.c:51

Member Data Documentation

integer FullSubMatrixHandler::iVecSize
protected

Definition at line 186 of file submat.h.

Referenced by FullSubMatrixHandler(), and Resize().


The documentation for this class was generated from the following files: