00001 00005 class MovingLS : public HandleId 00006 00007 { 00008 00009 Vec(real) P; 00010 Mat(real) dP; 00011 Mat(NUMT) A; 00012 Vec(NUMT) b; 00013 Vec(NUMT) a; 00014 00015 VecSimple(VecSimple(int)) elms4MLS; 00016 00017 Ptv(real) max_coor; 00018 real c; 00019 real weight (const Ptv(real)& x); 00020 Handle(GlobalPolynSpace) basis; 00021 String basis_name; 00022 00023 Mat(real) coords_; 00024 Vec(NUMT) values_; 00025 Vec(NUMT) scratch; 00026 VecSimple(int) perm; 00027 00028 public: 00029 MovingLS (); 00030 ~MovingLS () {} 00031 00032 void setBasisType (const String& basis_tp); 00033 void setPrmInWeight (real c_) { c = c_; } 00034 00035 void value 00036 ( 00037 NUMT& field_value, 00038 Ptv(NUMT)& field_gradient, 00039 const FieldsFEatItgPt& field, 00040 int field_no, 00041 int node 00042 ); 00043 00044 void smoothFields 00045 ( 00046 FieldsFE& smooth_field, 00047 const FieldsFEatItgPt& field, 00048 const VecSimple(int)* components_to_be_smoothed = NULL 00049 ); 00050 00051 void value 00052 ( 00053 NUMT& field_value, 00054 Ptv(NUMT)& field_gradient, 00055 const Vec(NUMT)& values, 00056 const Mat(real)& coords, 00057 const Ptv(real)& x_G 00058 ); 00059 00060 void initSupport (GridFE& grid, const FieldsFEatItgPt& field); 00061 }; 00062 00063