IFEM  90A354
LRSplineFields2Dmx.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _LRSPLINE_FIELDS_2D_MX_H
15 #define _LRSPLINE_FIELDS_2D_MX_H
16 
17 #include "Fields.h"
18 #include <set>
19 
20 class ASMu2Dmx;
21 
22 namespace LR {
23  class LRSplineSurface;
24 }
25 
26 
34 class LRSplineFields2Dmx : public Fields
35 {
36 public:
42  LRSplineFields2Dmx(const ASMu2Dmx* patch, const RealArray& v,
43  char basis = 12, const char* name = nullptr);
45  virtual ~LRSplineFields2Dmx() {}
46 
47  // Methods to evaluate the field
48  //==============================
49 
53  bool valueNode(size_t node, Vector& vals) const;
54 
58  bool valueCoor(const Vec4& x, Vector& vals) const;
59 
63  bool valueFE(const ItgPoint& x, Vector& vals) const;
64 
68  bool gradFE(const ItgPoint& x, Matrix& grad) const;
69 
73  virtual bool hessianFE(const ItgPoint& x, Matrix3D& H) const;
74 
75 protected:
76  const ASMu2Dmx* surf;
77  std::set<int> bases;
78 };
79 
80 #endif
Base class for vector fields.
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
Driver for assembly of unstructured 2D spline mixed FE models.
Definition: ASMu2Dmx.h:32
Base class for vector fields.
Definition: Fields.h:35
Class representing an integration point.
Definition: ItgPoint.h:25
Class for mixed LR spline-based finite element vector fields in 2D.
Definition: LRSplineFields2Dmx.h:35
bool valueNode(size_t node, Vector &vals) const
Computes the value in a given node/control point.
Definition: LRSplineFields2Dmx.C:52
const ASMu2Dmx * surf
Patch description.
Definition: LRSplineFields2Dmx.h:76
virtual ~LRSplineFields2Dmx()
Empty destructor.
Definition: LRSplineFields2Dmx.h:45
bool valueFE(const ItgPoint &x, Vector &vals) const
Computes the value at a given local coordinate.
Definition: LRSplineFields2Dmx.C:70
LRSplineFields2Dmx(const ASMu2Dmx *patch, const RealArray &v, char basis=12, const char *name=nullptr)
The constructor sets the number of space dimensions and fields.
Definition: LRSplineFields2Dmx.C:25
bool valueCoor(const Vec4 &x, Vector &vals) const
Computes the value at a given global coordinate.
Definition: LRSplineFields2Dmx.C:58
bool gradFE(const ItgPoint &x, Matrix &grad) const
Computes the gradient for a given local coordinate.
Definition: LRSplineFields2Dmx.C:112
std::set< int > bases
Bases to use.
Definition: LRSplineFields2Dmx.h:77
virtual bool hessianFE(const ItgPoint &x, Matrix3D &H) const
Computes the hessian for a given local coordinate.
Definition: LRSplineFields2Dmx.C:155
Simple class for representing a point in 3D space and time.
Definition: Vec3.h:209
A vector class with some added algebraic operations.
Definition: matrix.h:64
Utilities for LR-splines.
Definition: AdaptiveSetup.h:22