IFEM 90A354
ASMsupel.h
Go to the documentation of this file.
1// $Id$
2//==============================================================================
12//==============================================================================
13
14#ifndef _ASM_SUPEL_H
15#define _ASM_SUPEL_H
16
17#include "ASMbase.h"
18#include "ElmMats.h"
19#include "Vec3.h"
20
21
28class ASMsupel : public ASMbase
29{
30public:
32 explicit ASMsupel(unsigned char n_f = 6) : ASMbase(0,3,n_f) {}
34 ASMsupel(const ASMsupel& patch, unsigned char n_f) : ASMbase(patch,n_f) {}
36 ASMsupel(const ASMsupel& patch) : ASMbase(patch) {}
38 virtual ~ASMsupel() {}
39
41 virtual bool read(std::istream& is);
43 virtual bool write(std::ostream&, int) const;
45 virtual bool generateFEMTopology();
47 virtual bool empty() const { return myElmMat.empty(); }
48
52 virtual Vec3 getCoord(size_t inod) const;
56 virtual void getNodalCoordinates(Matrix& X, bool = false) const;
61 virtual bool getElementCoordinates(Matrix& X, int iel, bool = false) const;
62
67 virtual void getBoundaryNodes(int lIndex, IntVec& nodes,
68 int, int, int, bool local) const;
69
71 virtual void findBoundaryElms(IntVec&, int, int) const {}
73 virtual bool getParameterDomain(Real2DMat&, IntVec*) const { return false; }
75 virtual void getElmConnectivities(IntMat&, int) const {}
77 virtual bool updateCoords(const Vector&) { return false; }
79 virtual Vec3 getElementCenter(int) const { return Vec3(); }
80
84 virtual bool integrate(Integrand& integrand, GlobalIntegral& glbInt,
85 const TimeDomain&);
86
88 virtual bool integrate(Integrand&, int, GlobalIntegral&,
89 const TimeDomain&) { return false; }
90
92 virtual int evalPoint(const double*, double*, Vec3&) const { return 0; }
94 virtual int findElementContaining(const double*) const { return 0; }
96 virtual double findPoint(Vec3&, double*) const { return -1.0; }
97
100 virtual bool tesselate(ElementBlock& grid, const int*) const;
101
106 virtual bool evalSolution(Matrix& sField, const Vector& locSol,
107 const int*, int, bool) const;
108
110 virtual bool transform(const Matrix& Tlg);
111
112private:
115};
116
117#endif
Base class for spline-based finite element (FE) assembly drivers.
std::vector< int > IntVec
General integer vector.
Definition ASMbase.h:25
std::vector< IntVec > IntMat
General 2D integer matrix.
Definition ASMbase.h:26
Representation of the element matrices for a FEM problem.
std::vector< RealArray > Real2DMat
A real-valued two-dimensional array without algebraic operations.
Definition ImmersedBoundaries.h:34
Representation of a point in 3D space with some basic operations.
std::vector< Vec3 > Vec3Vec
An array of point vectors.
Definition Vec3.h:318
Base class for spline-based finite element (FE) assembly drivers.
Definition ASMbase.h:72
virtual bool evalSolution(Matrix &sField, const Vector &locSol, const int *npe, int n_f=0, bool piola=false) const
Evaluates the primary solution field at all visualization points.
Definition ASMbase.C:1797
Driver for assembly of general superelements.
Definition ASMsupel.h:29
ASMsupel(unsigned char n_f=6)
Default constructor.
Definition ASMsupel.h:32
virtual bool tesselate(ElementBlock &grid, const int *) const
Creates a standard FE model of this patch for visualization.
Definition ASMsupel.C:187
ASMsupel(const ASMsupel &patch)
Default copy constructor copying everything.
Definition ASMsupel.h:36
virtual int findElementContaining(const double *) const
Dummy method doing nothing.
Definition ASMsupel.h:94
virtual double findPoint(Vec3 &, double *) const
Dummy method doing nothing.
Definition ASMsupel.h:96
virtual bool integrate(Integrand &integrand, GlobalIntegral &glbInt, const TimeDomain &)
Evaluates an integral over the interior patch domain.
Definition ASMsupel.C:174
virtual bool getElementCoordinates(Matrix &X, int iel, bool=false) const
Returns a matrix with nodal coordinates for an element.
Definition ASMsupel.C:164
virtual bool empty() const
Checks if this patch is empty.
Definition ASMsupel.h:47
virtual bool generateFEMTopology()
Generates the finite element topology data for this patch.
Definition ASMsupel.C:101
virtual bool write(std::ostream &, int) const
Writes the geometry of the patch to the given stream.
Definition ASMsupel.C:86
virtual bool evalSolution(Matrix &sField, const Vector &locSol, const int *, int, bool) const
Evaluates the primary solution field at all visualization points.
Definition ASMsupel.C:203
virtual void getBoundaryNodes(int lIndex, IntVec &nodes, int, int, int, bool local) const
Finds the global (or patch-local) node numbers on a patch boundary.
Definition ASMsupel.C:125
virtual void findBoundaryElms(IntVec &, int, int) const
Dummy method doing nothing.
Definition ASMsupel.h:71
virtual int evalPoint(const double *, double *, Vec3 &) const
Dummy method doing nothing.
Definition ASMsupel.h:92
virtual bool getParameterDomain(Real2DMat &, IntVec *) const
Dummy method doing nothing.
Definition ASMsupel.h:73
virtual bool transform(const Matrix &Tlg)
Applies a transformation matrix from local to global system.
Definition ASMsupel.C:219
Vec3Vec myNodes
Supernode coordinates.
Definition ASMsupel.h:113
ElmMats myElmMat
Duperelement matrices.
Definition ASMsupel.h:114
virtual void getNodalCoordinates(Matrix &X, bool=false) const
Returns a matrix with all nodal coordinates within the patch.
Definition ASMsupel.C:152
virtual bool integrate(Integrand &, int, GlobalIntegral &, const TimeDomain &)
Dummy method (patch patch boundaries are not defined).
Definition ASMsupel.h:88
virtual Vec3 getCoord(size_t inod) const
Returns the global coordinates for the given node.
Definition ASMsupel.C:135
virtual ~ASMsupel()
Empty destructor.
Definition ASMsupel.h:38
virtual bool read(std::istream &is)
Creates an instance by reading the given input stream.
Definition ASMsupel.C:23
ASMsupel(const ASMsupel &patch, unsigned char n_f)
Special copy constructor for sharing of FE data.
Definition ASMsupel.h:34
virtual bool updateCoords(const Vector &)
Dummy method doing nothing.
Definition ASMsupel.h:77
virtual void getElmConnectivities(IntMat &, int) const
Dummy method doing nothing.
Definition ASMsupel.h:75
virtual Vec3 getElementCenter(int) const
Dummy method doing nothing.
Definition ASMsupel.h:79
Class for storage of a standard FE grid block.
Definition ElementBlock.h:27
Class collecting the element matrices associated with a FEM problem.
Definition ElmMats.h:34
virtual bool empty() const
Checks if the element matrices are empty.
Definition ElmMats.h:52
Abstract base class representing a system level integrated quantity.
Definition GlobalIntegral.h:29
Abstract base class representing a system level integrated quantity.
Definition Integrand.h:44
Simple class for representing a point in 3D space.
Definition Vec3.h:27
A vector class with some added algebraic operations.
Definition matrix.h:64
Struct representing the time domain.
Definition TimeDomain.h:23