IFEM  90A354
SAMpatch.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _SAM_PATCH_H
15 #define _SAM_PATCH_H
16 
17 #include "SAM.h"
18 
19 class ASMbase;
20 
21 
28 class SAMpatch : public SAM
29 {
30 public:
32  SAMpatch() {}
34  virtual ~SAMpatch() {}
35 
40  bool init(const std::vector<ASMbase*>& patches, int numNod,
41  const std::vector<char>& dTypes);
42 
45  bool updateConstraintEqs(const Vector* prevSol = nullptr);
46 
48  std::vector<ASMbase*>::const_iterator begin() const { return model.begin(); }
50  std::vector<ASMbase*>::const_iterator end() const { return model.end(); }
52  size_t getNoPatches() const { return model.size(); }
53 
55  virtual bool merge(const SAM* other, const std::map<int,int>* old2new);
56 
57 protected:
59  bool initNodeDofs(const std::vector<char>& dTypes);
61  bool initElementConn();
64  bool initConstraintEqs();
65 
66 private:
67  std::vector<ASMbase*> model;
68 };
69 
70 #endif
Assembly of FE matrices into system matrices.
Base class for spline-based finite element (FE) assembly drivers.
Definition: ASMbase.h:70
This class contains data and functions for the assembly of FE matrices.
Definition: SAM.h:39
This is a sub-class of SAM with added functionality for spline models.
Definition: SAMpatch.h:29
SAMpatch()
Empty default constructor.
Definition: SAMpatch.h:32
std::vector< ASMbase * >::const_iterator end() const
Returns the end iterator of the patch container.
Definition: SAMpatch.h:50
virtual ~SAMpatch()
Empty destructor.
Definition: SAMpatch.h:34
bool updateConstraintEqs(const Vector *prevSol=nullptr)
Updates the multi-point constraint array TTCC.
Definition: SAMpatch.C:363
bool initNodeDofs(const std::vector< char > &dTypes)
Initializes the nodal arrays MINEX, MADOF and MSC.
Definition: SAMpatch.C:84
bool initElementConn()
Initializes the element topology arrays MPMNPC and MMNPC.
Definition: SAMpatch.C:164
std::vector< ASMbase * > model
The spline patches of the model.
Definition: SAMpatch.h:67
virtual bool merge(const SAM *other, const std::map< int, int > *old2new)
Merges the assembly data from another SIM with this.
Definition: SAMpatch.C:425
bool init(const std::vector< ASMbase * > &patches, int numNod, const std::vector< char > &dTypes)
Allocates the dynamic arrays and populates them with data.
Definition: SAMpatch.C:21
std::vector< ASMbase * >::const_iterator begin() const
Returns the start iterator of the patch container.
Definition: SAMpatch.h:48
bool initConstraintEqs()
Initializes the multi-point constraint arrays MPMCEQ, MMCEQ and TTCC.
Definition: SAMpatch.C:259
size_t getNoPatches() const
Returns the number of patches in model.
Definition: SAMpatch.h:52
A vector class with some added algebraic operations.
Definition: matrix.h:64