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

#include <schurmh.h>

Inheritance diagram for SchurMatrixHandlerUm:
Collaboration diagram for SchurMatrixHandlerUm:

Classes

class  ErrGeneric
 

Public Member Functions

 SchurMatrixHandlerUm (int LocSize, int IntSize, MatrixHandler *pBM, integer *pGlobToLoc)
 
 ~SchurMatrixHandlerUm (void)
 
void MatEFCReset (void)
 
void Reset (void)
 
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
 
doublerealGetECol (const integer iCol) const
 
doublerealGetEColSol (const integer iCol) const
 
void CompLocSchur (void)
 
VectorHandlerCompNewf (VectorHandler &f, const VectorHandler &g) const
 
void PrintMatrix (void)
 
- Public Member Functions inherited from SchurMatrixHandler
 SchurMatrixHandler (int LocSize, int IntSize, MatrixHandler *pBM, integer *pGlobToLoc, doublereal *pdEv=0)
 
virtual ~SchurMatrixHandler (void)
 
virtual integer iGetNumRows (void) const
 
virtual integer iGetNumCols (void) const
 
MatrixHandlerGetBMat (void)
 
void SetBMat (MatrixHandler *pBM)
 
doublerealGetCMat (void)
 
virtual void Resize (integer, integer)
 
virtual const doublerealoperator() (integer iRow, integer iCol) const
 
virtual doublerealoperator() (integer iRow, integer iCol)
 
virtual VectorHandlerCompNewg (VectorHandler &g, const VectorHandler &f) const
 
- Public Member Functions inherited from MatrixHandler
virtual ~MatrixHandler (void)
 
virtual void ResizeReset (integer, integer)
 
virtual const doublerealpdGetMat (void) const
 
virtual doublerealpdGetMat (void)
 
virtual integerpiGetRows (void) const
 
virtual integerpiGetCols (void) const
 
virtual integer PacMat (void)
 
virtual MatrixHandleroperator= (const MatrixHandler &MH)
 
virtual MatrixHandleroperator+= (const SubMatrixHandler &SubMH)
 
virtual MatrixHandleroperator-= (const SubMatrixHandler &SubMH)
 
virtual MatrixHandleroperator+= (const VariableSubMatrixHandler &SubMH)
 
virtual MatrixHandleroperator-= (const VariableSubMatrixHandler &SubMH)
 
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
 

Private Attributes

doublerealpdEs
 
MyVectorHandlerpEs
 
bool Eflag
 

Additional Inherited Members

- Public Types inherited from MatrixHandler
enum  Norm_t { NORM_1, NORM_INF }
 
- Protected Member Functions inherited from MatrixHandler
virtual MatrixHandlerMatMatMul_base (void(MatrixHandler::*op)(integer iRow, integer iCol, const doublereal &dCoef), MatrixHandler &out, const MatrixHandler &in) const
 
virtual 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
 
- Protected Attributes inherited from SchurMatrixHandler
integer LSize
 
integer ISize
 
MatrixHandlerpB
 
MyVectorHandlerpE
 
doublerealpdE
 
SpMapMatrixHandlerpF
 
MyVectorHandlerpC
 
doublerealpdC
 
integerpGTL
 
bool bExtpdE
 

Detailed Description

Definition at line 771 of file schurmh.h.

Constructor & Destructor Documentation

SchurMatrixHandlerUm::SchurMatrixHandlerUm ( int  LocSize,
int  IntSize,
MatrixHandler pBM,
integer pGlobToLoc 
)

Definition at line 211 of file schurmh.cc.

References MyVectorHandler::Attach(), SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, SchurMatrixHandler::pdE, pdEs, SchurMatrixHandler::pE, pEs, SAFENEWARR, and SAFENEWWITHCONSTRUCTOR.

214 : SchurMatrixHandler(LocSize, IntSize, pBM, pGlobToLoc, 0),
215 pdEs(0),
216 pEs(0),
217 Eflag(1)
218 {
220  pdE = pdEs + LSize;
221  pE->Attach(LSize*ISize, pdE, LSize*ISize);
224  MyVectorHandler(LSize*ISize, pdEs));
225 }
integer ISize
Definition: schurmh.h:60
SchurMatrixHandler(int LocSize, int IntSize, MatrixHandler *pBM, integer *pGlobToLoc, doublereal *pdEv=0)
Definition: schurmh.cc:82
doublereal * pdE
Definition: schurmh.h:63
doublereal * pdEs
Definition: schurmh.h:780
MyVectorHandler * pEs
Definition: schurmh.h:781
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
MyVectorHandler * pE
Definition: schurmh.h:62
#define SAFENEWARR(pnt, item, sz)
Definition: mynewmem.h:701
void Attach(integer iSize, doublereal *pd, integer iMSize=0)
Definition: vh.cc:418
double doublereal
Definition: colamd.c:52
integer LSize
Definition: schurmh.h:60

Here is the call graph for this function:

SchurMatrixHandlerUm::~SchurMatrixHandlerUm ( void  )

Definition at line 227 of file schurmh.cc.

References SchurMatrixHandler::pdE, pdEs, SchurMatrixHandler::pE, SAFEDELETE, and SAFEDELETEARR.

228 {
229  if (pE != 0) {
230  SAFEDELETE(pE);
231  }
232 
233  if (pdEs != 0) {
235  }
236 
237  pdE = 0;
238 }
doublereal * pdE
Definition: schurmh.h:63
#define SAFEDELETEARR(pnt)
Definition: mynewmem.h:713
doublereal * pdEs
Definition: schurmh.h:780
MyVectorHandler * pE
Definition: schurmh.h:62
#define SAFEDELETE(pnt)
Definition: mynewmem.h:710

Member Function Documentation

void SchurMatrixHandlerUm::CompLocSchur ( void  )
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 1052 of file schurmh.h.

References Eflag, SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, SchurMatrixHandler::pdC, pdEs, and SchurMatrixHandler::pF.

1053 {
1054  Eflag = false;
1055  for (int j = 0; j < ISize; j++) {
1056  int iColc = j * ISize;
1057  int iCole = j * LSize;
1058 
1059  for (int k = 0; k < LSize; k++) {
1060  for (int i = 0; i < ISize; i++) {
1061  pdC[i + iColc] -=
1062  pF->operator()(i + 1, k + 1) * pdEs[k + iCole];
1063  }
1064  }
1065  }
1066 }
integer ISize
Definition: schurmh.h:60
SpMapMatrixHandler * pF
Definition: schurmh.h:64
doublereal * pdEs
Definition: schurmh.h:780
doublereal * pdC
Definition: schurmh.h:66
integer LSize
Definition: schurmh.h:60
VectorHandler & SchurMatrixHandlerUm::CompNewf ( VectorHandler f,
const VectorHandler g 
) const
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 1069 of file schurmh.h.

References ASSERT, VectorHandler::DecCoef(), VectorHandler::iGetSize(), SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, and pdEs.

1070 {
1071 #ifdef DEBUG
1072  ASSERT(f.iGetSize() == LSize);
1073  ASSERT(g.iGetSize() == ISize);
1074 #endif /* DEBUG */
1075 
1076  for (int j = 0; j < ISize; j++) {
1077  int iColx = j * LSize;
1078 
1079  for (int i = 0; i < LSize; i++) {
1080  if (pdEs[i + iColx] != 0) {
1081  f.DecCoef(i + 1, pdEs[i + iColx]*g(j + 1));
1082  }
1083  }
1084  }
1085  return f;
1086 }
integer ISize
Definition: schurmh.h:60
doublereal * pdEs
Definition: schurmh.h:780
virtual integer iGetSize(void) const =0
virtual void DecCoef(integer iRow, const doublereal &dCoef)=0
#define ASSERT(expression)
Definition: colamd.c:977
integer LSize
Definition: schurmh.h:60

Here is the call graph for this function:

void SchurMatrixHandlerUm::DecCoef ( integer  iRow,
integer  iCol,
const doublereal dCoef 
)
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 948 of file schurmh.h.

References MatrixHandler::DecCoef(), SpMapMatrixHandler::DecCoef(), MyVectorHandler::DecCoef(), Eflag, SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, MBDYN_EXCEPT_ARGS, SchurMatrixHandler::pB, SchurMatrixHandler::pC, SchurMatrixHandler::pE, pEs, SchurMatrixHandler::pF, and SchurMatrixHandler::pGTL.

950 {
951 #ifdef DEBUG
952  IsValid();
953 #endif /* DEBUG */
954 
955  if (pGTL[iRow] > 0) {
956  if (pGTL[iCol] > 0) {
957  pB->DecCoef(pGTL[iRow], pGTL[iCol], dCoef);
958  return;
959 
960  } else if (pGTL[iCol] < 0) {
961  if (Eflag) {
962  pE->DecCoef(pGTL[iRow] - (pGTL[iCol] + 1)*LSize, dCoef);
963 
964  } else {
965  pEs->DecCoef(pGTL[iRow] - (pGTL[iCol] + 1)*LSize, dCoef);
966  }
967  return;
968  }
969 
970  } else if (pGTL[iRow] < 0) {
971  if (iCol > 0) {
972  pF->DecCoef(-pGTL[iRow], pGTL[iCol], dCoef);
973  return;
974 
975  } else if (iCol < 0) {
976  pC->DecCoef(-pGTL[iRow] - (pGTL[iCol] + 1)*ISize, dCoef);
977  return;
978  }
979  }
980 
981 #ifdef USE_MPI
982  silent_cerr("SchurMatrixHandlerUm::DecCoef() "
983  "Process(" << MBDynComm.Get_rank() << "): "
984  "trying to operate on nonlocal indices "
985  << iRow << "," << iCol << std::endl);
986 #else /* ! USE_MPI */
987  silent_cerr("SchurMatrixHandlerUm::DecCoef() "
988  "trying to operate on nonlocal indices "
989  << iRow << "," << iCol << std::endl);
990 #endif /* ! USE_MPI */
991 
993 }
integer ISize
Definition: schurmh.h:60
SpMapMatrixHandler * pF
Definition: schurmh.h:64
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
void DecCoef(integer ix, integer iy, const doublereal &inc)
Definition: spmapmh.h:170
integer * pGTL
Definition: schurmh.h:72
virtual void DecCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: mh.cc:379
MyVectorHandler * pC
Definition: schurmh.h:65
virtual void DecCoef(integer iRow, const doublereal &dCoef)
Definition: vh.h:291
MyVectorHandler * pEs
Definition: schurmh.h:781
MyVectorHandler * pE
Definition: schurmh.h:62
MatrixHandler * pB
Definition: schurmh.h:61
integer LSize
Definition: schurmh.h:60

Here is the call graph for this function:

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

Reimplemented from SchurMatrixHandler.

Definition at line 996 of file schurmh.h.

References Eflag, SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, SchurMatrixHandler::pB, SchurMatrixHandler::pC, SchurMatrixHandler::pE, pEs, SchurMatrixHandler::pF, SchurMatrixHandler::pGTL, and Zero1.

997 {
998 #ifdef DEBUG
999  IsValid();
1000 #endif /* DEBUG */
1001 
1002  if (pGTL[iRow] > 0) {
1003  if (pGTL[iCol] > 0) {
1004  return pB->operator()(pGTL[iRow], pGTL[iCol]);
1005 
1006  } else if (pGTL[iCol] < 0) {
1007  if (Eflag) {
1008  return pE->operator()(pGTL[iRow] - (pGTL[iCol] + 1)*LSize);
1009 
1010  } else {
1011  return pEs->operator()(pGTL[iRow] - (pGTL[iCol] + 1)*LSize);
1012  }
1013  }
1014 
1015  } else if (pGTL[iRow] < 0) {
1016  if (pGTL[iCol] > 0) {
1017  return pF->operator()(-pGTL[iRow], pGTL[iCol]);
1018 
1019  } else if (pGTL[iCol] < 0) {
1020  return pC->operator()(-pGTL[iRow] - (pGTL[iCol] + 1)*ISize);
1021  }
1022  }
1023 
1024 #ifdef USE_MPI
1025  silent_cerr("SchurMatrixHandlerUm::dGetCoef() "
1026  "Process(" << MBDynComm.Get_rank() << "): "
1027  "trying to operate on nonlocal indices "
1028  << iRow << "," << iCol << std::endl);
1029 #else /* ! USE_MPI */
1030  silent_cerr("SchurMatrixHandlerUm::dGetCoef() "
1031  "trying to operate on nonlocal indices "
1032  << iRow << "," << iCol << std::endl);
1033 #endif /* ! USE_MPI */
1034 
1036 }
integer ISize
Definition: schurmh.h:60
SpMapMatrixHandler * pF
Definition: schurmh.h:64
integer * pGTL
Definition: schurmh.h:72
MyVectorHandler * pC
Definition: schurmh.h:65
const doublereal Zero1
MyVectorHandler * pEs
Definition: schurmh.h:781
MyVectorHandler * pE
Definition: schurmh.h:62
MatrixHandler * pB
Definition: schurmh.h:61
integer LSize
Definition: schurmh.h:60
doublereal * SchurMatrixHandlerUm::GetECol ( const integer  iCol) const
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 1039 of file schurmh.h.

References SchurMatrixHandler::LSize, and SchurMatrixHandler::pdE.

1040 {
1041  return &pdE[iCol*LSize];
1042 }
doublereal * pdE
Definition: schurmh.h:63
integer LSize
Definition: schurmh.h:60
doublereal * SchurMatrixHandlerUm::GetEColSol ( const integer  iCol) const
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 1045 of file schurmh.h.

References SchurMatrixHandler::LSize, and pdEs.

1046 {
1047  return &pdEs[iCol*LSize];
1048 }
doublereal * pdEs
Definition: schurmh.h:780
integer LSize
Definition: schurmh.h:60
void SchurMatrixHandlerUm::IncCoef ( integer  iRow,
integer  iCol,
const doublereal dCoef 
)
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 900 of file schurmh.h.

References Eflag, MatrixHandler::IncCoef(), SpMapMatrixHandler::IncCoef(), MyVectorHandler::IncCoef(), SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, MBDYN_EXCEPT_ARGS, SchurMatrixHandler::pB, SchurMatrixHandler::pC, SchurMatrixHandler::pE, pEs, SchurMatrixHandler::pF, and SchurMatrixHandler::pGTL.

902 {
903 #ifdef DEBUG
904  IsValid();
905 #endif /* DEBUG */
906 
907  if (pGTL[iRow] > 0) {
908  if (pGTL[iCol] > 0) {
909  pB->IncCoef(pGTL[iRow], pGTL[iCol], dCoef);
910  return;
911 
912  } else if (pGTL[iCol] < 0) {
913  if (Eflag) {
914  pE->IncCoef(pGTL[iRow] - (pGTL[iCol] + 1)*LSize, dCoef);
915 
916  } else {
917  pEs->IncCoef(pGTL[iRow] - (pGTL[iCol] + 1)*LSize, dCoef);
918  }
919  return;
920  }
921 
922  } else if (pGTL[iRow] < 0) {
923  if (pGTL[iCol] > 0) {
924  pF->IncCoef(-pGTL[iRow], pGTL[iCol], dCoef);
925  return;
926 
927  } else if (pGTL[iCol] < 0) {
928  pC->IncCoef(-pGTL[iRow] - (pGTL[iCol] + 1)*ISize, dCoef);
929  return;
930  }
931  }
932 
933 #ifdef USE_MPI
934  silent_cerr("SchurMatrixHandlerUm::IncCoef() "
935  "Process(" << MBDynComm.Get_rank() << "): "
936  "trying to operate on nonlocal indices "
937  << iRow << "," << iCol << std::endl);
938 #else /* ! USE_MPI */
939  silent_cerr("SchurMatrixHandlerUm::IncCoef() "
940  "trying to operate on nonlocal indices "
941  << iRow << "," << iCol << std::endl);
942 #endif /* ! USE_MPI */
943 
945 }
integer ISize
Definition: schurmh.h:60
SpMapMatrixHandler * pF
Definition: schurmh.h:64
virtual void IncCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: mh.cc:374
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
integer * pGTL
Definition: schurmh.h:72
MyVectorHandler * pC
Definition: schurmh.h:65
MyVectorHandler * pEs
Definition: schurmh.h:781
MyVectorHandler * pE
Definition: schurmh.h:62
MatrixHandler * pB
Definition: schurmh.h:61
integer LSize
Definition: schurmh.h:60
void IncCoef(integer ix, integer iy, const doublereal &inc)
Definition: spmapmh.h:153
virtual void IncCoef(integer iRow, const doublereal &dCoef)
Definition: vh.h:278

Here is the call graph for this function:

void SchurMatrixHandlerUm::MatEFCReset ( void  )
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 826 of file schurmh.h.

References Eflag, SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, SchurMatrixHandler::pC, pdEs, SchurMatrixHandler::pF, MyVectorHandler::Reset(), and SpMapMatrixHandler::Reset().

Referenced by Reset().

827 {
828 #ifdef DEBUG
829  IsValid();
830 #endif /* DEBUG */
831 
832  Eflag = true;
833  for (int i = 0; i < LSize*(ISize + 1); i++) {
834  pdEs[i] = 0.;
835  }
836  pF->Reset();
837  pC->Reset();
838 }
integer ISize
Definition: schurmh.h:60
SpMapMatrixHandler * pF
Definition: schurmh.h:64
doublereal * pdEs
Definition: schurmh.h:780
void Reset(void)
Definition: spmapmh.cc:161
MyVectorHandler * pC
Definition: schurmh.h:65
virtual void Reset(void)
Definition: vh.cc:459
integer LSize
Definition: schurmh.h:60

Here is the call graph for this function:

void SchurMatrixHandlerUm::PrintMatrix ( void  )
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 1089 of file schurmh.h.

References Eflag, SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, SchurMatrixHandler::pB, SchurMatrixHandler::pdC, SchurMatrixHandler::pdE, pdEs, and SchurMatrixHandler::pF.

1090 {
1091  silent_cout("Schur Matrix " << std::endl);
1092 
1093  for (int i = 0; i < LSize; i++) {
1094  for (int j = 0; j < LSize; j++) {
1095  silent_cout(pB->operator()(i + 1, j + 1) << " ");
1096  }
1097 
1098  for (int j = 0; j < ISize; j++) {
1099  if (Eflag) {
1100  silent_cout(pdE[i + j*LSize] << " ");
1101  } else {
1102  silent_cout(pdEs[i + j*LSize] << " ");
1103  }
1104  }
1105  silent_cout(std::endl);
1106  }
1107 
1108  for (int i = 0; i < ISize; i++) {
1109  for (int j = 0;j < LSize; j++) {
1110  silent_cout(pF->operator()(i + 1, j + 1) << " ");
1111  }
1112 
1113  for (int j = 0; j < ISize; j++) {
1114  silent_cout(pdC[i + j*ISize] << " ");
1115  }
1116  silent_cout(std::endl);
1117  }
1118 }
integer ISize
Definition: schurmh.h:60
SpMapMatrixHandler * pF
Definition: schurmh.h:64
doublereal * pdE
Definition: schurmh.h:63
doublereal * pdEs
Definition: schurmh.h:780
doublereal * pdC
Definition: schurmh.h:66
MatrixHandler * pB
Definition: schurmh.h:61
integer LSize
Definition: schurmh.h:60
void SchurMatrixHandlerUm::PutCoef ( integer  iRow,
integer  iCol,
const doublereal dCoef 
)
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 852 of file schurmh.h.

References Eflag, SchurMatrixHandler::ISize, SchurMatrixHandler::LSize, MBDYN_EXCEPT_ARGS, SchurMatrixHandler::pB, SchurMatrixHandler::pC, SchurMatrixHandler::pE, pEs, SchurMatrixHandler::pF, SchurMatrixHandler::pGTL, MatrixHandler::PutCoef(), MyVectorHandler::PutCoef(), and SpMapMatrixHandler::PutCoef().

854 {
855 #ifdef DEBUG
856  IsValid();
857 #endif /* DEBUG */
858 
859  if (pGTL[iRow] > 0) {
860  if (pGTL[iCol] > 0) {
861  pB->PutCoef(pGTL[iRow], pGTL[iCol], dCoef);
862  return;
863 
864  } else if (pGTL[iCol] < 0 ) {
865  if (Eflag) {
866  pE->PutCoef(pGTL[iRow] - (pGTL[iCol] + 1)*LSize, dCoef);
867 
868  } else {
869  pEs->PutCoef(pGTL[iRow] - (pGTL[iCol] + 1)*LSize, dCoef);
870  }
871  return;
872  }
873 
874  } else if (pGTL[iRow] < 0 ) {
875  if (pGTL[iCol] > 0) {
876  pF->PutCoef(-pGTL[iRow], pGTL[iCol], dCoef);
877  return;
878 
879  } else if (pGTL[iCol] < 0) {
880  pC->PutCoef(-pGTL[iRow] - (pGTL[iCol] + 1)*ISize, dCoef);
881  return;
882  }
883  }
884 
885 #ifdef USE_MPI
886  silent_cerr("SchurMatrixHandlerUm::PutCoef() "
887  "Process(" << MBDynComm.Get_rank() << "): "
888  "trying to operate on nonlocal indices "
889  << iRow << "," << iCol << std::endl);
890 #else /* ! USE_MPI */
891  silent_cerr("SchurMatrixHandlerUm::PutCoef() "
892  "trying to operate on nonlocal indices "
893  << iRow << "," << iCol << std::endl);
894 #endif /* ! USE_MPI */
895 
897 }
integer ISize
Definition: schurmh.h:60
SpMapMatrixHandler * pF
Definition: schurmh.h:64
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
integer * pGTL
Definition: schurmh.h:72
virtual void PutCoef(integer iRow, const doublereal &dCoef)
Definition: vh.h:261
MyVectorHandler * pC
Definition: schurmh.h:65
virtual void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: mh.cc:384
MyVectorHandler * pEs
Definition: schurmh.h:781
MyVectorHandler * pE
Definition: schurmh.h:62
void PutCoef(integer ix, integer iy, const doublereal &val)
Definition: spmapmh.h:187
MatrixHandler * pB
Definition: schurmh.h:61
integer LSize
Definition: schurmh.h:60

Here is the call graph for this function:

void SchurMatrixHandlerUm::Reset ( void  )
inlinevirtual

Reimplemented from SchurMatrixHandler.

Definition at line 840 of file schurmh.h.

References Eflag, MatEFCReset(), SchurMatrixHandler::pB, and MatrixHandler::Reset().

841 {
842 #ifdef DEBUG
843  IsValid();
844 #endif /* DEBUG */
845 
846  Eflag = true;
847  pB->Reset();
848  MatEFCReset();
849 }
virtual void Reset(void)=0
void MatEFCReset(void)
Definition: schurmh.h:826
MatrixHandler * pB
Definition: schurmh.h:61

Here is the call graph for this function:

Member Data Documentation

bool SchurMatrixHandlerUm::Eflag
private

Definition at line 782 of file schurmh.h.

Referenced by CompLocSchur(), DecCoef(), dGetCoef(), IncCoef(), MatEFCReset(), PrintMatrix(), PutCoef(), and Reset().

doublereal* SchurMatrixHandlerUm::pdEs
private
MyVectorHandler* SchurMatrixHandlerUm::pEs
private

Definition at line 781 of file schurmh.h.

Referenced by DecCoef(), dGetCoef(), IncCoef(), PutCoef(), and SchurMatrixHandlerUm().


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