IFEM  90A354
SIMgeneric.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _SIM_GENERIC_H_
15 #define _SIM_GENERIC_H_
16 
17 #include "SIMoutput.h"
18 
19 
27 class SIMgeneric : public SIMoutput
28 {
29 protected:
31  explicit SIMgeneric(IntegrandBase* itg = nullptr) : SIMoutput(itg) {}
32 
33 public:
35  virtual ~SIMgeneric() {}
36 
40 
47  RealArray getSolution(const Vector& psol, const double* par,
48  int deriv = 0, int patch = 1) const;
49 
57  int evalPoint(const double* xi, Vec3& X, double* param = nullptr,
58  int patch = 1, bool global = false) const;
59 
66  const RealArray& weights, int code) const;
67 
73  int findElementContaining(const double* param,
74  int patch = 1, bool global = false) const;
75 
77  virtual bool calcBouForces(Real2DMat&, const Vectors&) { return false; }
78 
80  size_t getVCPindex(size_t idx = 1) const;
82  virtual size_t getVolumeIndex() const { return 0; }
83 
87  virtual void printNorms(const Vectors& gNorm, size_t w = 36) const;
88 
90  virtual void printNormGroup(const Vector&, const Vector&,
91  const std::string&) const {}
92 
96  virtual double getReferenceNorm(const Vectors& gNorm, size_t adaptor) const;
97 
102  virtual double getEffectivityIndex(const Vectors& gNorm,
103  size_t idx, size_t inorm) const;
104 
106  virtual bool staticCondensation(Matrix&, Vector&) { return false; }
108  virtual bool recoverInternals(const Vector&, Vector&) { return false; }
110  virtual std::string getSupelName() const { return ""; }
112  virtual void dumpSupernodes(std::ostream&) const {}
113 
114 protected:
118  bool revertSqrt(Vectors& gNorm, Matrix* eNorm);
119 };
120 
121 #endif
std::vector< RealArray > Real2DMat
A real-valued two-dimensional array without algebraic operations.
Definition: ImmersedBoundaries.h:34
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
std::vector< Vector > Vectors
An array of real-valued vectors with algebraic operations.
Definition: MatVec.h:37
Sub-class with functionality for result output to VTF and terminal.
Base class for spline-based finite element (FE) assembly drivers.
Definition: ASMbase.h:70
Base class representing a system level integrated quantity.
Definition: IntegrandBase.h:42
Generic SIM class with some added functionalities.
Definition: SIMgeneric.h:28
bool revertSqrt(Vectors &gNorm, Matrix *eNorm)
Reverts the square-root operation on some norm quantities.
Definition: SIMgeneric.C:217
RealArray getSolution(const Vector &psol, const double *par, int deriv=0, int patch=1) const
Evaluates the primary solution at the given point.
Definition: SIMgeneric.C:39
size_t getVCPindex(size_t idx=1) const
Returns the norm index for the a VCP-recovered quantity.
Definition: SIMgeneric.C:152
virtual ~SIMgeneric()
Empty destructor.
Definition: SIMgeneric.h:35
virtual size_t getVolumeIndex() const
Returns the norm index for the integrated volume (3D) or area (2D).
Definition: SIMgeneric.h:82
virtual void printNormGroup(const Vector &, const Vector &, const std::string &) const
Prints a norm group to the log stream (app-specific).
Definition: SIMgeneric.h:90
RealArray getInterfaceForces(const RealArray &sf, const RealArray &weights, int code) const
Extracts the force resultant on a specified interface.
Definition: SIMgeneric.C:70
virtual bool calcBouForces(Real2DMat &, const Vectors &)
Calculates surface traction resultants.
Definition: SIMgeneric.h:77
SIMgeneric(IntegrandBase *itg=nullptr)
Default constructor.
Definition: SIMgeneric.h:31
int findElementContaining(const double *param, int patch=1, bool global=false) const
Returns the element that contains a specified spatial point.
Definition: SIMgeneric.C:118
virtual double getEffectivityIndex(const Vectors &gNorm, size_t idx, size_t inorm) const
Returns the global effectivity index.
Definition: SIMgeneric.C:145
virtual bool staticCondensation(Matrix &, Vector &)
Interface for static condensation of the linear equation system.
Definition: SIMgeneric.h:106
virtual void dumpSupernodes(std::ostream &) const
Interface for dumping supernode coordinates to file.
Definition: SIMgeneric.h:112
int evalPoint(const double *xi, Vec3 &X, double *param=nullptr, int patch=1, bool global=false) const
Evaluates the mapping of the geometry at the given point.
Definition: SIMgeneric.C:106
virtual double getReferenceNorm(const Vectors &gNorm, size_t adaptor) const
Returns the reference norm to base mesh adaptation upon.
Definition: SIMgeneric.C:129
virtual std::string getSupelName() const
Interface for returning the superelement file name, if any.
Definition: SIMgeneric.h:110
virtual void printNorms(const Vectors &gNorm, size_t w=36) const
Prints integrated solution norms to the log stream.
Definition: SIMgeneric.C:167
virtual bool recoverInternals(const Vector &, Vector &)
Interface for recovery of internal DOFs from static condensation.
Definition: SIMgeneric.h:108
ASMbase * createDefaultModel()
Creates a model with the default geometry (line, plane, cube).
Definition: SIMgeneric.C:24
Sub-class with additional functionality for result output.
Definition: SIMoutput.h:33
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