IFEM  90A354
LRSplineField3D.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _LRSPLINE_FIELD_3D_H
15 #define _LRSPLINE_FIELD_3D_H
16 
17 #include "FieldBase.h"
18 
19 class ASMu3D;
20 
21 namespace LR {
22  class Element;
23  class LRSplineVolume;
24 }
25 
26 
34 class LRSplineField3D : public FieldBase
35 {
36 public:
44  LRSplineField3D(const ASMu3D* patch, const RealArray& v,
45  char basis = 1, char cmp = 1, const char* name = nullptr);
50  LRSplineField3D(const LR::LRSplineVolume* svol, const RealArray& v,
51  const char* name = nullptr);
53  virtual ~LRSplineField3D() {}
54 
55  // Methods to evaluate the field
56  //==============================
57 
60  virtual double valueNode(size_t node) const;
61 
64  virtual double valueFE(const ItgPoint& x) const;
65 
68  virtual double valueCoor(const Vec4& x) const;
69 
73  virtual bool gradFE(const ItgPoint& x, Vector& grad) const;
74 
78  virtual bool hessianFE(const ItgPoint& x, Matrix& H) const;
79 
80 protected:
81  const LR::LRSplineVolume* basis;
82  const LR::LRSplineVolume* vol;
83 };
84 
85 #endif
Base class for scalar 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 scalar fields.
Definition: FieldBase.h:30
Class representing an integration point.
Definition: ItgPoint.h:25
Class for LR spline-based finite element scalar fields in 3D.
Definition: LRSplineField3D.h:35
virtual bool hessianFE(const ItgPoint &x, Matrix &H) const
Computes the hessian for a given local coordinate.
Definition: LRSplineField3D.C:123
virtual ~LRSplineField3D()
Empty destructor.
Definition: LRSplineField3D.h:53
virtual double valueFE(const ItgPoint &x) const
Computes the value at a given local coordinate.
Definition: LRSplineField3D.C:67
virtual bool gradFE(const ItgPoint &x, Vector &grad) const
Computes the gradient for a given local coordinate.
Definition: LRSplineField3D.C:98
virtual double valueNode(size_t node) const
Computes the value in a given node/control point.
Definition: LRSplineField3D.C:61
LRSplineField3D(const ASMu3D *patch, const RealArray &v, char basis=1, char cmp=1, const char *name=nullptr)
The constructor sets the number of space dimensions and fields.
Definition: LRSplineField3D.C:24
virtual double valueCoor(const Vec4 &x) const
Computes the value at a given global coordinate.
Definition: LRSplineField3D.C:86
const LR::LRSplineVolume * basis
Spline basis description.
Definition: LRSplineField3D.h:81
const LR::LRSplineVolume * vol
Spline geometry description.
Definition: LRSplineField3D.h:82
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