IFEM  90A354
LRSplineFields3D.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _LRSPLINE_FIELDS_3D_H
15 #define _LRSPLINE_FIELDS_3D_H
16 
17 #include "Fields.h"
18 
19 class ASMu3D;
20 
21 namespace LR {
22  class Element;
23  class LRSplineVolume;
24 }
25 
26 
34 class LRSplineFields3D : public Fields
35 {
36 public:
43  LRSplineFields3D(const ASMu3D* patch, const RealArray& v,
44  char basis = 1, int nf = 0, const char* name = nullptr);
45 
51  LRSplineFields3D(const LR::LRSplineVolume* svol, const RealArray& v, int ncmp,
52  const char* name = nullptr);
53 
55  virtual ~LRSplineFields3D() {}
56 
57  // Methods to evaluate the field
58  //==============================
59 
63  bool valueNode(size_t node, Vector& vals) const;
64 
68  bool valueFE(const ItgPoint& x, Vector& vals) const;
69 
73  bool valueCoor(const Vec4& x, Vector& vals) const;
74 
78  bool gradFE(const ItgPoint& x, Matrix& grad) const;
79 
83  virtual bool hessianFE(const ItgPoint& x, Matrix3D& H) const;
84 
85 protected:
86  const LR::LRSplineVolume* basis;
87  const LR::LRSplineVolume* vol;
88 };
89 
90 #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 3D spline FE models.
Definition: ASMu3D.h:45
Base class for vector fields.
Definition: Fields.h:35
unsigned char nf
Number of field components.
Definition: Fields.h:101
Class representing an integration point.
Definition: ItgPoint.h:25
Class for LR spline-based finite element vector fields in 3D.
Definition: LRSplineFields3D.h:35
virtual bool hessianFE(const ItgPoint &x, Matrix3D &H) const
Computes the hessian for a given local coordinate.
Definition: LRSplineFields3D.C:142
bool valueCoor(const Vec4 &x, Vector &vals) const
Computes the value at a given global coordinate.
Definition: LRSplineFields3D.C:102
const LR::LRSplineVolume * vol
Spline geometry description.
Definition: LRSplineFields3D.h:87
const LR::LRSplineVolume * basis
Spline basis description.
Definition: LRSplineFields3D.h:86
bool valueFE(const ItgPoint &x, Vector &vals) const
Computes the value at a given local coordinate.
Definition: LRSplineFields3D.C:76
bool gradFE(const ItgPoint &x, Matrix &grad) const
Computes the gradient for a given local coordinate.
Definition: LRSplineFields3D.C:111
LRSplineFields3D(const ASMu3D *patch, const RealArray &v, char basis=1, int nf=0, const char *name=nullptr)
The constructor sets the number of space dimensions and fields.
Definition: LRSplineFields3D.C:24
virtual ~LRSplineFields3D()
Empty destructor.
Definition: LRSplineFields3D.h:55
bool valueNode(size_t node, Vector &vals) const
Computes the value in a given node/control point.
Definition: LRSplineFields3D.C:66
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