00001
00005 class FieldFEGlobalView : public HandleId
00006
00007 {
00008 protected:
00009 Handle(SubGridFE) grids;
00010 Handle(FieldFE) subgrid_field;
00011 Handle(FieldFE) global_field;
00012
00013
00014 VecSimple(int) bfnode_glob2sub, bfnode_sub2glob;
00015
00016
00017 public:
00018 FieldFEGlobalView ();
00019 ~FieldFEGlobalView ();
00020
00021 FieldFE& getGlobalField() { return *global_field; }
00022 const FieldFE& getGlobalField() const { return *global_field; }
00023
00024
00025 virtual void makeGlobalView (const FieldFE& subgrid_field,
00026 const SubGridFE& grids);
00027
00028
00029
00030
00031 NUMT valueFEM (const FiniteElement& fe, real t = DUMMY);
00032
00033 NUMT valuePt (const Ptv(real)& x, real t = DUMMY);
00034
00035 NUMT& valueNode (int node, real t = DUMMY);
00036 NUMT valueNode (int node, real t = DUMMY) const
00037 { return CAST_CONST_AWAY(FieldFEGlobalView)->valueNode(node,t); }
00038
00039 Ptv(NUMT) derivativePt (const Ptv(real)& x, real t = DUMMY);
00040 Ptv(NUMT) derivativePt (const Ptv(real)& x, real t = DUMMY) const
00041 { return CAST_CONST_AWAY(FieldFEGlobalView)->derivativePt(x,t); }
00042
00043 void derivativeFEM (Ptv(NUMT)& gradient, const FiniteElement& fe,
00044 real t = DUMMY);
00045
00046 void derivativeFEM
00047 (Ptv(NUMT)& gradient, const FiniteElement& fe, real t = DUMMY) const
00048 { CAST_CONST_AWAY(FieldFEGlobalView)->derivativeFEM (gradient, fe, t); }
00049
00050
00051
00052
00053
00054
00055 };
00056
00057