IFEM  90A354
SIMmultiCpl.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _SIM_MULTI_CPL_H_
15 #define _SIM_MULTI_CPL_H_
16 
17 #include "SIMadmin.h"
18 #include "TopologySet.h"
19 
20 class SIMoutput;
21 class SIMinput;
22 
23 
28 class SIMmultiCpl : public SIMadmin
29 {
30 public:
32  explicit SIMmultiCpl(const std::vector<SIMoutput*>& sims);
34  virtual ~SIMmultiCpl();
35 
36  using SIMadmin::parse;
38  virtual bool parse(const tinyxml2::XMLElement* elem);
39 
44  virtual bool preprocessC(const IntVec& ignored, bool fixDup, double time0);
45 
46 private:
48  bool parseConnection(const tinyxml2::XMLElement* elem);
49 
50 protected:
52  struct SIMcoupling
53  {
54  SIMinput* mstSim = nullptr;
55  SIMinput* slvSim = nullptr;
56  TopEntity::const_iterator master;
57  TopEntity::const_iterator slave;
58  };
59 
60  std::vector<SIMcoupling> myCpl;
61  std::vector<SIMoutput*> mySims;
62 };
63 
64 #endif
Administration base class for FEM simulators.
Representation of topological entities.
Administration base class for FEM simulators.
Definition: SIMadmin.h:32
std::vector< int > IntVec
Convenience alias.
Definition: SIMadmin.h:34
virtual bool parse(char *keyWord, std::istream &is)
Parses a data section from an input stream.
Definition: SIMadmin.C:113
Sub-class with functionality for model input and setup.
Definition: SIMinput.h:37
Class for monolithic coupled simulators.
Definition: SIMmultiCpl.h:29
std::vector< SIMoutput * > mySims
Dimension-specific simulator container.
Definition: SIMmultiCpl.h:61
std::vector< SIMcoupling > myCpl
Inter-sim coupling definition container.
Definition: SIMmultiCpl.h:60
bool parseConnection(const tinyxml2::XMLElement *elem)
Parses a connection definition from an XML element.
Definition: SIMmultiCpl.C:60
SIMmultiCpl(const std::vector< SIMoutput * > &sims)
The constructor initializes the array of base SIM objects.
Definition: SIMmultiCpl.C:22
virtual ~SIMmultiCpl()
The destructor deletes the base SIM objects.
Definition: SIMmultiCpl.C:36
virtual bool preprocessC(const IntVec &ignored, bool fixDup, double time0)
Performs some pre-processing tasks on the FE model.
Definition: SIMmultiCpl.C:89
virtual bool parse(char *keyWord, std::istream &is)
Parses a data section from an input stream.
Definition: SIMadmin.C:113
Sub-class with additional functionality for result output.
Definition: SIMoutput.h:33
Struct defining an inter-simulator coupling.
Definition: SIMmultiCpl.h:53
SIMinput * slvSim
Simulator of the slave point.
Definition: SIMmultiCpl.h:55
SIMinput * mstSim
Simulator of the master point.
Definition: SIMmultiCpl.h:54
TopEntity::const_iterator master
Master point specification.
Definition: SIMmultiCpl.h:56
TopEntity::const_iterator slave
Slave point specification.
Definition: SIMmultiCpl.h:57