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
19class ASMbase;
20
21
28class SAMpatch : public SAM
29{
30public:
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
57protected:
59 bool initNodeDofs(const std::vector<char>& dTypes);
61 bool initElementConn();
64 bool initConstraintEqs();
65
66private:
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:72
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
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 * >::const_iterator end() const
Returns the end iterator of the patch container.
Definition SAMpatch.h:50
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
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
std::vector< ASMbase * >::const_iterator begin() const
Returns the start iterator of the patch container.
Definition SAMpatch.h:48
A vector class with some added algebraic operations.
Definition matrix.h:64