00001 00005 class GridMapUDC : public HandleId 00006 00007 { 00008 public: 00009 00010 GridMapUDC () {} 00011 virtual ~GridMapUDC (); 00012 virtual void sideFunctions (Ptv(real)& deformed, const Ptv(real)& refbox, 00013 int side, real t = DUMMY) =0; 00014 }; 00015 00016 00040 class TransfMap : public FieldsFunc 00041 00042 { 00043 private: 00044 00045 Handle(GridMapUDC) sides; 00046 00047 VecSimple(real) grading_at_side; 00048 00049 real fi_1 (real s); 00050 real fi_2 (real s); 00051 real psi_1 (real t); 00052 real psi_2 (real t); 00053 00054 void mapping2d (Ptv(real)& refbox, Ptv(NUMT)& deformed, real t); 00055 void mapping3d (Ptv(real)& refbox, Ptv(NUMT)& deformed, real t); 00056 00057 public: 00058 00059 TransfMap () {} 00060 TransfMap (GridMapUDC& users_side_function); 00061 ~TransfMap () {} 00062 void rebind (GridMapUDC& users_side_function); 00063 static bool consistent (const Ptv(real)& refbox); 00064 00065 virtual void valuePt (Ptv(NUMT)& deformed, const Ptv(real)& refbox, 00066 real time = DUMMY); 00067 00068 static void defineStatic (MenuSystem& menu, int level = MAIN); 00069 void define (MenuSystem& menu, int level = MAIN); 00070 void scan (MenuSystem& menu); 00071 void scan (Is is); 00072 }; 00073 00074