00001 00005 class DiracDelta 00006 00007 { 00008 protected: 00009 00010 VecSimplest(SingleDiracDelta) delta_array; 00011 bool active; 00012 00013 public: 00014 00015 DiracDelta () {} 00016 ~DiracDelta () {} 00017 00018 void scan (MenuSystem& menu, GridFE& grid, const int delta_number = 1); 00019 static void defineStatic (MenuSystem& menu, int level = MAIN, 00020 const int delta_number=1); 00021 void init(GridFE& grid); 00022 int getElm(int i) const { return delta_array(i).element; } 00023 Ptv(real) getLocalPt(int i) const { return delta_array(i).loc_pt; } 00024 Ptv(real) getGlobalPt(int i) const { return delta_array(i).point; } 00025 real getMagnitude(int i) const { return delta_array(i).magnitude; } 00026 int getNoEntries() const {return delta_array.size();} 00027 00028 void getGlobalPts(VecSimple(Ptv(real))& pts); 00029 00030 void setPoint(int i, const Ptv(real)& new_point, GridFE& grid); 00031 bool deltaInElm(int e) const; 00032 void add2ElmMatVec(ElmMatVec& elmat, FiniteElement& fe); 00033 void turnON() {active=true;} 00034 void turnOFF() {active=false;} 00035 bool turnedON() {return active;} 00036 00037 void print(Os os) const; 00038 bool ok() const; 00039 }; 00040 00041