xc
Communicator.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 
29 
30 #ifndef Communicator_h
31 #define Communicator_h
32 
33 #include "utility/matrix/ID.h"
34 #include <string>
35 #include "utility/actor/objectBroker/FEM_ObjectBroker.h"
36 #include "BrokedPtrCommMetaData.h"
37 #include <set>
38 #include "DbTagData.h"
39 
40 namespace XC {
41 class Channel;
42 //class FEM_ObjectBroker;
43 class MovableID;
44 class Matrix;
45 class Vector;
46 class BJtensor;
47 class MovableVector;
48 class MovableMatrix;
49 class MovableString;
50 class MovableObject;
51 class ArrayCommMetaData;
52 class MatrixCommMetaData;
53 class TensorCommMetaData;
54 class Material;
55 class TimeSeries;
56 class ResponseId;
57 class DomainDecompositionAnalysis;
58 class CrdTransf;
59 class CrdTransf2d;
60 class CrdTransf3d;
61 class BeamIntegration;
62 
64 //
67  {
68  private:
69  int commitTag;
70  Channel *canal;
71  FEM_ObjectBroker *broker;
72  public:
73  Communicator(int cTag, Channel &);
74  Communicator(int cTag, Channel &, FEM_ObjectBroker &);
75 
76  inline const int &getCommitTag(void) const
77  { return commitTag; }
78  int getDbTag(void) const;
79  bool isDatastore(void) const;
80  inline const Channel *getChannel(void) const
81  { return canal; }
82  inline Channel *getChannel(void)
83  { return canal; }
84 
85  int sendIdData(const DbTagData &,const int &);
86  int receiveIdData(DbTagData &,const int &) const;
87  int sendID(const ID &,const int &);
88  int receiveID(ID &v,const int &) const;
89  int sendVector(const Vector &,const int &);
90  int receiveVector(Vector &v,const int &) const;
91  int sendMatrix(const Matrix &,const int &);
92  int receiveMatrix(Matrix &v,const int &) const;
93 
94  int sendID(const ID &,DbTagData &, const CommMetaData &);
95  int receiveID(ID &v,DbTagData &, const CommMetaData &) const;
96  int sendIDPtr(ID *,DbTagData &, const ArrayCommMetaData &);
97  ID *receiveIDPtr(ID* &,DbTagData &, const ArrayCommMetaData &) const;
100  int sendMatrix(const Matrix &,DbTagData &, const CommMetaData &);
101  int receiveMatrix(Matrix &v,DbTagData &, const CommMetaData &) const;
102  int sendMatrixPtr(Matrix *ptr,DbTagData &, const MatrixCommMetaData &);
103  Matrix *receiveMatrixPtr(Matrix* &ptr,DbTagData &, const MatrixCommMetaData &) const;
104  int sendTensorPtr(BJtensor *ptr,DbTagData &, const TensorCommMetaData &);
108 
109  int sendMatrices(const std::vector<Matrix> &,DbTagData &, const CommMetaData &);
110  int receiveMatrices(std::vector<Matrix> &,DbTagData &, const CommMetaData &) const;
111 
112  int sendString(const std::string &,DbTagData &, const CommMetaData &);
113  int receiveString(std::string &v,DbTagData &, const CommMetaData &) const;
114  int sendStrings(std::deque<std::string> &,DbTagData &, const CommMetaData &);
115  int receiveStrings(std::deque<std::string> &,DbTagData &, const CommMetaData &) const;
116  int sendStrings(std::vector<std::string> &,DbTagData &, const CommMetaData &);
117  int receiveStrings(std::vector<std::string> &,DbTagData &, const CommMetaData &) const;
118 
119  int sendVector(const Vector &,DbTagData &, const CommMetaData &);
120  int receiveVector(Vector &v,DbTagData &, const CommMetaData &) const;
121  int sendVectors(std::vector<Vector> &,DbTagData &, const CommMetaData &);
122  int receiveVectors(std::vector<Vector> &v,DbTagData &, const CommMetaData &) const;
123  int sendIDs(std::vector<ID> &,DbTagData &, const CommMetaData &);
124  int receiveIDs(std::vector<ID> &v,DbTagData &, const CommMetaData &) const;
125  int sendVector(const std::vector<double> &,DbTagData &, const CommMetaData &);
126  int receiveVector(std::vector<double> &v,DbTagData &, const CommMetaData &) const;
127  int sendVectorPtr(Vector *ptr,DbTagData &, const ArrayCommMetaData &);
128  Vector *receiveVectorPtr(Vector* &ptr,DbTagData &, const ArrayCommMetaData &) const;
131  int sendTensor(const BJtensor &,DbTagData &, const CommMetaData &);
132  int receiveTensor(BJtensor &v,DbTagData &, const CommMetaData &) const;
133 
134  int sendDoublePtr(double *,DbTagData &, const ArrayCommMetaData &);
135  double *receiveDoublePtr(double* &,DbTagData &, const ArrayCommMetaData &) const;
136  int sendDouble(const double &,DbTagData &, const CommMetaData &);
137  int sendDoubles(const double &,const double &,DbTagData &, const CommMetaData &);
138  int sendDoubles(const double &,const double &,const double &,DbTagData &, const CommMetaData &);
139  int sendDoubles(const double &,const double &,const double &,const double &,DbTagData &, const CommMetaData &);
140  int sendDoubles(const double &,const double &,const double &,const double &,const double &,DbTagData &, const CommMetaData &);
141  int sendDoubles(const double &,const double &,const double &,const double &,const double &,const double &,DbTagData &, const CommMetaData &);
142  int receiveDouble(double &,DbTagData &, const CommMetaData &) const;
143  int receiveDoubles(double &,double &,DbTagData &, const CommMetaData &) const;
144  int receiveDoubles(double &,double &,double &,DbTagData &, const CommMetaData &) const;
145  int receiveDoubles(double &,double &,double &,double &,DbTagData &, const CommMetaData &) const;
146  int receiveDoubles(double &,double &,double &,double &,double &,DbTagData &, const CommMetaData &) const;
147  int receiveDoubles(double &,double &,double &,double &,double &,double &,DbTagData &, const CommMetaData &) const;
148 
149  int sendBool(const bool &,DbTagData &, const CommMetaData &);
150  int sendBools(const bool &,const bool &,DbTagData &, const CommMetaData &);
151  int sendBools(const bool &,const bool &,const bool &,DbTagData &, const CommMetaData &);
152  int sendBools(const bool &,const bool &,const bool &,const bool &,DbTagData &, const CommMetaData &);
153  int sendBools(const bool &,const bool &,const bool &,const bool &,const bool &,DbTagData &, const CommMetaData &);
154  int sendBools(const bool &,const bool &,const bool &,const bool &,const bool &,const bool &,DbTagData &, const CommMetaData &);
155  int receiveBool(bool &,DbTagData &, const CommMetaData &) const;
156  int receiveBools(bool &,bool &,DbTagData &, const CommMetaData &) const;
157  int receiveBools(bool &,bool &,bool &,DbTagData &, const CommMetaData &) const;
158  int receiveBools(bool &,bool &,bool &,bool &,DbTagData &, const CommMetaData &) const;
159  int receiveBools(bool &,bool &,bool &,bool &,bool &,DbTagData &, const CommMetaData &) const;
160  int receiveBools(bool &,bool &,bool &,bool &,bool &,bool &,DbTagData &, const CommMetaData &) const;
161 
162  int sendInt(const int &,DbTagData &, const CommMetaData &);
163  int sendInts(const int &,const int &,DbTagData &, const CommMetaData &);
164  int sendInts(const int &,const int &,const int &,DbTagData &, const CommMetaData &);
165  int sendInts(const int &,const int &,const int &,const int &,DbTagData &, const CommMetaData &);
166  int sendInts(const int &,const int &,const int &,const int &,const int &,DbTagData &, const CommMetaData &);
167  int sendInts(const int &,const int &,const int &,const int &,const int &,const int &,DbTagData &, const CommMetaData &);
168  int receiveInt(int &,DbTagData &, const CommMetaData &) const;
169  int receiveInts(int &,int &,DbTagData &, const CommMetaData &) const;
170  int receiveInts(int &,int &,int &,DbTagData &, const CommMetaData &) const;
171  int receiveInts(int &,int &,int &,int &,DbTagData &, const CommMetaData &) const;
172  int receiveInts(int &,int &,int &,int &,int &,DbTagData &, const CommMetaData &) const;
173  int receiveInts(int &,int &,int &,int &,int &,int &,DbTagData &, const CommMetaData &) const;
174 
175  size_t sendSzt(const size_t &,DbTagData &, const CommMetaData &);
176  size_t sendSzts(const size_t &,const size_t &,DbTagData &, const CommMetaData &);
177  size_t sendSzts(const size_t &,const size_t &,const size_t &,DbTagData &, const CommMetaData &);
178  size_t sendSzts(const size_t &,const size_t &,const size_t &,const size_t &,DbTagData &, const CommMetaData &);
179  size_t sendSzts(const size_t &,const size_t &,const size_t &,const size_t &,const size_t &,DbTagData &, const CommMetaData &);
180  size_t sendSzts(const size_t &,const size_t &,const size_t &,const size_t &,const size_t &,const size_t &,DbTagData &, const CommMetaData &);
181  size_t receiveSzt(size_t &,DbTagData &, const CommMetaData &) const;
182  size_t receiveSzts(size_t &,size_t &,DbTagData &, const CommMetaData &) const;
183  size_t receiveSzts(size_t &,size_t &,size_t &,DbTagData &, const CommMetaData &) const;
184  size_t receiveSzts(size_t &,size_t &,size_t &,size_t &,DbTagData &, const CommMetaData &) const;
185  size_t receiveSzts(size_t &,size_t &,size_t &,size_t &,size_t &,DbTagData &, const CommMetaData &) const;
186  size_t receiveSzts(size_t &,size_t &,size_t &,size_t &,size_t &,size_t &,DbTagData &, const CommMetaData &) const;
187 
189 
191  int receiveMovable(MovableObject &,DbTagData &, const CommMetaData &) const;
193  template <class MOV>
194  MOV *receiveMovablePtr(MOV* &,DbTagData &, const PtrCommMetaData &) const;
195 
196 
197 
199  template <class T>
200  T *getBrokedPtr(const int &,T *(FEM_ObjectBroker::*ptrFunc)(int)) const;
201  template <class T>
202  T *getBrokedTagged(T* &ptr,const int &,const int &,const int &,T *(FEM_ObjectBroker::*ptrFunc)(int)) const;
203 
204  template <class MAT>
205  MAT *getBrokedMaterial(MAT* &,DbTagData &, const BrokedPtrCommMetaData &) const;
206  template <class HDL>
207  HDL *getBrokedDataOutputHandler(HDL* &,DbTagData &, const BrokedPtrCommMetaData &) const;
208  template <class GM>
209  GM *getBrokedGroundMotion(GM* &,DbTagData &, const BrokedPtrCommMetaData &) const;
210 
211  ConstraintHandler *brokeConstraintHandler(const int &) const;
212  DOF_Numberer *brokeNumberer(const int &) const;
213  AnalysisModel *brokeAnalysisModel(const int &) const;
214  LinearSOE *brokeDDLinearSOE(const int &,const int &) const;
215  LinearSOE *brokeLinearSOE(const int &,const int &) const;
216  IncrementalIntegrator *brokeIncrementalIntegrator(const int &) const;
217  StaticIntegrator *brokeStaticIntegrator(const int &) const;
218  TransientIntegrator *brokeTransientIntegrator(const int &) const;
219  DomainDecompAlgo *brokeDomainDecompAlgo(const int &) const;
220  EquiSolnAlgo *brokeEquiSolnAlgo(const int &) const;
221  GroundMotion *brokeGroundMotion(const int &) const;
222  DomainSolver *getNewDomainSolver(void) const;
223  DomainDecompositionAnalysis *getNewDomainDecompAnalysis(int, Subdomain &) const;
224  ConvergenceTest *getNewConvergenceTest(CommandEntity *owr,int classTag) const;
225  TimeSeries *getNewTimeSeries(int classTag) const;
226  CrdTransf2d *getNewCrdTransf2d(int classTag) const;
227  CrdTransf3d *getNewCrdTransf3d(int classTag) const;
228  CrdTransf *getNewCrdTransf(int classTag) const;
229  ShellCrdTransf3dBase *getNewShellCrdTransf3d(int classTag) const;
230  BeamIntegration *getNewBeamIntegration(int classTag) const;
231  };
232 
233 template <class T>
234 T *Communicator::getBrokedPtr(const int &classTag,T *(FEM_ObjectBroker::*ptrFunc)(int)) const
235  {
236  assert(broker);
237  T *retval=((*broker).*ptrFunc)(classTag);
238  return retval;
239  }
240 
241 template <class MAT>
242 MAT *Communicator::getBrokedMaterial(MAT* &ptr,DbTagData &dbTagData, const BrokedPtrCommMetaData &md) const
243  {
244  if(!ptr)
245  {
246  assert(broker);
247  const int classTag= dbTagData.getDbTagDataPos(md.getPosClassTag());
248  Material *tmp= broker->getNewMaterial(classTag);
249  if(tmp)
250  {
251  ptr= dynamic_cast<MAT *>(tmp);
252  if(ptr)
253  {
254  const int res= receiveMovable(*ptr,dbTagData,md);
255  if(res<0)
256  std::cerr <<"WARNING - receiveMaterialPtr "
257  << "failed to receive material.\n";
258  }
259  else
260  {
261  delete tmp;
262  std::cerr << "Communicator::getBrokedMaterial "
263  << " wrong material class."
264  << std::endl;
265  }
266  }
267  else
268  std::cerr << "getBrokedMaterial: "
269  << " broker could not create material of class type: "
270  << classTag << std::endl;;
271  }
272  return ptr;
273  }
274 
275 template <class HDL>
276 HDL *Communicator::getBrokedDataOutputHandler(HDL* &ptr,DbTagData &dbTagData, const BrokedPtrCommMetaData &md) const
277  {
278  if(!ptr)
279  {
280  assert(broker);
281  const int classTag= dbTagData.getDbTagDataPos(md.getPosClassTag());
282  DataOutputHandler *tmp= broker->getPtrNewDataOutputHandler(classTag);
283  if(tmp)
284  {
285  ptr= dynamic_cast<HDL *>(tmp);
286  if(!ptr) delete tmp;
287  }
288  else
289  std::cerr << "getBrokedDataOutputHandlerMaterial: "
290  << " broker could not create handler of class type: "
291  << classTag << std::endl;;
292  }
293  return ptr;
294  }
295 
296 template <class GM>
297 GM *Communicator::getBrokedGroundMotion(GM* &ptr,DbTagData &dbTagData, const BrokedPtrCommMetaData &md) const
298  {
299  if(!ptr)
300  {
301  assert(broker);
302  const int classTag= dbTagData.getDbTagDataPos(md.getPosClassTag());
303  GroundMotion *tmp= broker->getNewGroundMotion(classTag);
304  if(tmp)
305  {
306  ptr= dynamic_cast<GM *>(tmp);
307  if(!ptr) delete tmp;
308  }
309  else
310  std::cerr << "getBrokedGroundMotion: "
311  << " broker could not create ground motion of class type: "
312  << classTag << std::endl;;
313  }
314  return ptr;
315  }
316 
317 template <class T>
318 T *Communicator::getBrokedTagged(T* &ptr,const int &dbTag,const int &objTag,const int &classTag,T *(FEM_ObjectBroker::*ptrFunc)(int)) const
319  {
320  if(!ptr)
321  {
322  assert(broker);
323  T *retval=((*broker).*ptrFunc)(classTag);
324 
325  if(retval)
326  {
327  retval->setDbTag(dbTag);
328  retval->setTag(objTag);
329  ptr= retval;
330  }
331  else
332  std::cerr << "getBrokedTagged; can't create object con classTag: "
333  << classTag << std::endl;
334  }
335  return ptr;
336  }
337 
338 template <class MOV>
339 MOV *Communicator::receiveMovablePtr(MOV* &ptr,DbTagData &dbTagData, const PtrCommMetaData &meta) const
340  {
341  if(dbTagData.getDbTagDataPos(meta.getPosFlag()) == 0)
342  {
343  // make some room and read in the ID
344  if(!ptr)
345  {
346  ptr= new MOV();
347  if(!ptr)
348  std::cerr << "receiveMovableIDPtr -- ran out of memory\n";
349  }
350  if(ptr)
351  {
352  ptr->setDbTag(dbTagData.getDbTagDataPos(meta.getPosDbTag()));
353  int res= ptr->recvSelf(*this);
354  if(res < 0)
355  std::cerr << "receiveMovableIDPtr - failed to receive ID data\n";
356  }
357  }
358  return ptr;
359  }
360 
361 } // end of XC namespace
362 
363 #endif
int sendMovable(MovableObject &, DbTagData &, const CommMetaData &)
Sends a movable object through the communicator argument.
Definition: Communicator.cc:1163
int sendInt(const int &, DbTagData &, const CommMetaData &)
Sends the integer through the communicator argument.
Definition: Communicator.cc:875
int receiveDoubles(double &, double &, DbTagData &, const CommMetaData &) const
Receives the doubles through the communicator argument.
Definition: Communicator.cc:675
Data about the address, size,...
Definition: TensorCommMetaData.h:41
int sendIdData(const DbTagData &, const int &)
Sends miembro data through the communicator argument.
Definition: Communicator.cc:411
{staticFormTaylor} {equation}
Definition: StaticIntegrator.h:138
double * receiveDoublePtr(double *&, DbTagData &, const ArrayCommMetaData &) const
Receive the array data through the communicator argument.
Definition: Communicator.cc:574
Base class for DOF numbererers.
Definition: DOF_Numberer.h:94
int sendBrokedPtr(MovableObject *ptr, DbTagData &, const BrokedPtrCommMetaData &)
Sends a pointer to movable object through the communicator argument.
Definition: Communicator.cc:1204
Float vector abstraction.
Definition: Vector.h:94
Domain enclosed in another domain.
Definition: Subdomain.h:102
int sendBool(const bool &, DbTagData &, const CommMetaData &)
Sends bool through the communicator argument.
Definition: Communicator.cc:742
int sendTensor(const BJtensor &, DbTagData &, const CommMetaData &)
Sends tensor through the communicator argument.
Definition: Communicator.cc:348
virtual DataOutputHandler * getPtrNewDataOutputHandler(int classTag)
Broke a DataOutputHandler object from its class tag.
Definition: FEM_ObjectBroker.cpp:1024
int sendBools(const bool &, const bool &, DbTagData &, const CommMetaData &)
Sends the bools through the communicator argument.
Definition: Communicator.cc:748
int sendStrings(std::deque< std::string > &, DbTagData &, const CommMetaData &)
Sends the string container through the communicator argument.
Definition: Communicator.cc:368
int receiveBool(bool &, DbTagData &, const CommMetaData &) const
Sends the bool through the communicator argument.
Definition: Communicator.cc:798
int receiveString(std::string &v, DbTagData &, const CommMetaData &) const
Receives la text string through the communicator argument.
Definition: Communicator.cc:337
ConstraintHandlers enforce the single and multi freedom constraints that exist in the domain by creat...
Definition: ConstraintHandler.h:93
Communication parameters between processes.
Definition: Communicator.h:66
ID that can move between processes.
Definition: MovableID.h:44
Linear system of equations.
Definition: LinearSOE.h:92
ResponseId * receiveResponseIdPtr(ResponseId *&, DbTagData &, const ArrayCommMetaData &) const
Receives a ResponseId object.
Definition: Communicator.cc:1150
size_t receiveSzts(size_t &, size_t &, DbTagData &, const CommMetaData &) const
Receives the integers through the communicator argument.
Definition: Communicator.cc:1081
Data about the position, size,...
Definition: PtrCommMetaData.h:39
Object that can move between processes.
Definition: MovableObject.h:100
CrdTransf provides the abstraction of a frame coordinate transformation.
Definition: CrdTransf.h:88
const int & getDbTagDataPos(const size_t &i) const
Returns the integer in the position being passed as parameter.
Definition: DbTagData.cc:58
int getDbTag(void) const
Ask the channel for a tag for the database.
Definition: Communicator.cc:57
int receiveTensor(BJtensor &v, DbTagData &, const CommMetaData &) const
Receives el tensor through the communicator argument.
Definition: Communicator.cc:357
int receiveInt(int &, DbTagData &, const CommMetaData &) const
Receives the integers through the communicator argument.
Definition: Communicator.cc:935
int sendMatrices(const std::vector< Matrix > &, DbTagData &, const CommMetaData &)
Sends the matrices.
Definition: Communicator.cc:293
ID * receiveIDPtr(ID *&, DbTagData &, const ArrayCommMetaData &) const
Receives an ID pointer through the communicator being passed as parameter.
Definition: Communicator.cc:129
Solution algorithm for domain decomposition analysis.
Definition: DomainDecompAlgo.h:89
int receiveMovable(MovableObject &, DbTagData &, const CommMetaData &) const
Receives a movable object trhrough the communicator argument.
Definition: Communicator.cc:1174
size_t sendSzt(const size_t &, DbTagData &, const CommMetaData &)
Sends entero through the communicator argument.
Definition: Communicator.cc:1014
MovableVector * receiveMovableVectorPtr(MovableVector *&, DbTagData &, const PtrCommMetaData &)
Receives a MovableVector pointer through the communicator argument.
Definition: Communicator.cc:177
Boris Jeremic tensor class.
Definition: BJtensor.h:112
Base class for materials.
Definition: Material.h:93
int sendDoublePtr(double *, DbTagData &, const ArrayCommMetaData &)
Send the array data through the communicator argument.
Definition: Communicator.cc:557
Vector that stores the dbTags of the class members.
Definition: DbTagData.h:44
int sendVectorPtr(Vector *ptr, DbTagData &, const ArrayCommMetaData &)
Sends the Vector pointed by ptr through the communicator argument.
Definition: Communicator.cc:512
FEM_ObjectBroker is is an object broker class for the finite element method.
Definition: FEM_ObjectBroker.h:151
Vector of integers.
Definition: ID.h:95
Data about the index, size,,...
Definition: CommMetaData.h:39
int receiveIDs(std::vector< ID > &v, DbTagData &, const CommMetaData &) const
Receives the ID container through the communicator argument.
Definition: Communicator.cc:501
Base class for 2D coordinate transformation.
Definition: CrdTransf2d.h:78
Base class for 3D coordinate transformations.
Definition: ShellCrdTransf3dBase.h:49
BJtensor * receiveTensorPtr(BJtensor *&ptr, DbTagData &, const TensorCommMetaData &) const
Receives a pointer to tensor through the communicator argument.
Definition: Communicator.cc:272
Matrix * receiveMatrixPtr(Matrix *&ptr, DbTagData &, const MatrixCommMetaData &) const
Receives a pointer to the matrix through the communicator argument.
Definition: Communicator.cc:237
int sendMovableVectorPtr(MovableVector *, DbTagData &, const PtrCommMetaData &)
Sends a MovableVector pointer through the communicator argument.
Definition: Communicator.cc:170
int receiveVector(Vector &v, const int &) const
Receives el vector.
Definition: Communicator.cc:426
Used when performing a domain decomposition analysis.
Definition: DomainDecompositionAnalysis.h:91
int sendVectors(std::vector< Vector > &, DbTagData &, const CommMetaData &)
Sends the vector container through the communicator argument.
Definition: Communicator.cc:472
int sendDoubles(const double &, const double &, DbTagData &, const CommMetaData &)
Send the doubles through the communicator argument.
Definition: Communicator.cc:612
Container for FE_Element and DOF_Group objects created by the constraint handler. ...
Definition: AnalysisModel.h:134
Vector * receiveVectorPtr(Vector *&ptr, DbTagData &, const ArrayCommMetaData &) const
Receives a Vector pointed by ptr through the communicator argument.
Definition: Communicator.cc:530
size_t sendSzts(const size_t &, const size_t &, DbTagData &, const CommMetaData &)
Sends the integers through the communicator argument.
Definition: Communicator.cc:1020
int sendMatrix(const Matrix &, const int &)
Send the matrix through the communicator argument.
Definition: Communicator.cc:181
int sendInts(const int &, const int &, DbTagData &, const CommMetaData &)
Sends the integers through the communicator argument.
Definition: Communicator.cc:885
virtual GroundMotion * getNewGroundMotion(int classTag)
Broke a ground motion object from its class tag.
Definition: FEM_ObjectBroker.cpp:899
Base class for ground motions.
Definition: GroundMotion.h:84
Base class for integration on beam elements.
Definition: BeamIntegration.h:80
Objet that can execute python scripts.
Definition: CommandEntity.h:40
int receiveVectors(std::vector< Vector > &v, DbTagData &, const CommMetaData &) const
Receives the vector container through the communicator argument.
Definition: Communicator.cc:481
Data about the position, size,...
Definition: MatrixCommMetaData.h:41
Stiffness material contribution response identifiers.
Definition: ResponseId.h:61
IncrementalIntegrator is an algorithmic class for setting up the finite element equations in an incre...
Definition: IncrementalIntegrator.h:100
int sendIDs(std::vector< ID > &, DbTagData &, const CommMetaData &)
Sends the ID container through the communicator argument.
Definition: Communicator.cc:492
int receiveMatrices(std::vector< Matrix > &, DbTagData &, const CommMetaData &) const
Receives las matrices.
Definition: Communicator.cc:313
int sendID(const ID &, const int &)
Sends vector.
Definition: Communicator.cc:73
Channel is an abstract base class which defines the channel interface.
Definition: Channel.h:92
Base class for solution algorithms.
Definition: EquiSolnAlgo.h:91
MovableID * receiveMovableIDPtr(MovableID *&, DbTagData &, const PtrCommMetaData &)
Receives a MovableID pointer through the communicator argument.
Definition: Communicator.cc:164
int sendMovableIDPtr(MovableID *, DbTagData &, const PtrCommMetaData &)
Sends a MovableID pointer through the communicator argument.
Definition: Communicator.cc:157
virtual Material * getNewMaterial(int classTag)
Broke a Material object from its class tag.
Definition: FEM_ObjectBroker.cpp:776
bool isDatastore(void) const
Returns true if it&#39;s a data store.
Definition: Communicator.cc:64
size_t receiveSzt(size_t &, DbTagData &, const CommMetaData &) const
Receives the integers through the communicator argument.
Definition: Communicator.cc:1070
int sendString(const std::string &, DbTagData &, const CommMetaData &)
Send the text string through the communicator argument.
Definition: Communicator.cc:328
convergence test.
Definition: ConvergenceTest.h:81
int sendMatrixPtr(Matrix *ptr, DbTagData &, const MatrixCommMetaData &)
Send a pointer to the matrix through the communicator argument.
Definition: Communicator.cc:217
Data to transmit for a pointer «broked».
Definition: BrokedPtrCommMetaData.h:40
int receiveInts(int &, int &, DbTagData &, const CommMetaData &) const
Receives the integers through the communicator argument.
Definition: Communicator.cc:948
int receiveIdData(DbTagData &, const int &) const
Receives el miembro data through the communicator argument.
Definition: Communicator.cc:415
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
int receiveMatrix(Matrix &v, const int &) const
Receives the matrix through the communicator argument.
Definition: Communicator.cc:188
Time variation of loads.
Definition: TimeSeries.h:85
int receiveStrings(std::deque< std::string > &, DbTagData &, const CommMetaData &) const
Receives the string container through the communicator argument.
Definition: Communicator.cc:377
int sendMovablePtr(MovableObject *ptr, DbTagData &, const PtrCommMetaData &)
Sends a pointer to movable object through the communicator argument.
Definition: Communicator.cc:1187
Data about the position, size, ...
Definition: ArrayCommMetaData.h:42
int sendTensorPtr(BJtensor *ptr, DbTagData &, const TensorCommMetaData &)
Send a pointer to the tensor through the communicator argument.
Definition: Communicator.cc:264
Matrix of floats.
Definition: Matrix.h:111
used to solve a system of equations and to do static condensation operations on the linear system of ...
Definition: DomainSolver.h:83
Matrix that can move between processes.
Definition: MovableMatrix.h:44
int receiveID(ID &v, const int &) const
Receives el vector.
Definition: Communicator.cc:80
int receiveBools(bool &, bool &, DbTagData &, const CommMetaData &) const
Receives the bools through the communicator argument.
Definition: Communicator.cc:809
Vector that can move between processes.
Definition: MovableVector.h:42
MovableMatrix * receiveMovableMatrixPtr(MovableMatrix *&, DbTagData &, const PtrCommMetaData &)
Receives a MovableMatrix pointer through the communicator argument.
Definition: Communicator.cc:287
int sendMovableMatrixPtr(MovableMatrix *, DbTagData &, const PtrCommMetaData &)
Sends a MovableMatrix pointer through the communicator argument.
Definition: Communicator.cc:281
int receiveDouble(double &, DbTagData &, const CommMetaData &) const
Receives el double through the communicator argument.
Definition: Communicator.cc:662
Communicator(int cTag, Channel &)
Constructor.
Definition: Communicator.cc:49
Base class for data output handlers.
Definition: DataOutputHandler.h:69
int sendDouble(const double &, DbTagData &, const CommMetaData &)
Sends a double through the communicator argument.
Definition: Communicator.cc:602
Base class for 3D coordinate transformation.
Definition: CrdTransf3d.h:81
int sendIDPtr(ID *, DbTagData &, const ArrayCommMetaData &)
Sends an ID pointer through the communicator being passed as parameter.
Definition: Communicator.cc:110
int sendVector(const Vector &, const int &)
Sends vector.
Definition: Communicator.cc:419