00001 /* 00002 00003 umesh2dgui, a GUI for umesh2d grid generator 00004 00005 Copyright (C) 2010 Gabriele Dini Ciacci <dark.schneider@iol.it> 00006 Based on a code from Luigi Quartapelle and Massimo Biava 00007 00008 This program is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 2 of the License, or 00011 (at your option) any later version. 00012 00013 This program is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with this program; if not, write to the Free Software 00020 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00021 00022 Created on January 27, 2010, 6:10 PM 00023 */ 00024 00025 #ifndef _U2D_PROBLEMCALCULATOR_H 00026 #define _U2D_PROBLEMCALCULATOR_H 00027 00028 #include "u2d_Problem.h" 00029 #include "u2d_DirichletCondition.h" 00030 #include "u2d_GaussPoints.h" 00031 #include "boost/numeric/mtl/mtl.hpp" 00032 00033 using namespace mtl; 00034 00035 class u2d_ProblemCalculator { 00036 public: 00037 u2d_ProblemCalculator(u2d_Problem *_problem, u2d_Mesh *_mesh); 00038 u2d_ProblemCalculator(const u2d_ProblemCalculator& orig); 00039 virtual ~u2d_ProblemCalculator(); 00040 00041 /* The various term calculators */ 00042 void forceDirichlet_left(u2d_DirichletCondition *cond); 00043 void addAlphaW__G_left(u2d_DomainGaussPoints *dgp, double alpha); 00044 void addDW__AlphaDG_left(u2d_DomainGaussPoints *dgp, dense_vector<double> alpha); 00045 void addW__AlphaDG_left(u2d_DomainGaussPoints *dgp, dense2D<double> alpha); 00046 void addAlphaW__G_left(u2d_BoundaryGaussPoints *bgp, double alpha); 00047 private: 00048 u2d_Problem *problem; 00049 u2d_Mesh *mesh; 00050 00051 00052 }; 00053 00054 #endif /* _U2D_PROBLEMCALCULATOR_H */ 00055