00001 // This file is part of ff3d - http://www.freefem.org/ff3d 00002 // Copyright (C) 2001, 2002, 2003 Stéphane Del Pino 00003 00004 // This program is free software; you can redistribute it and/or modify 00005 // it under the terms of the GNU General Public License as published by 00006 // the Free Software Foundation; either version 2, or (at your option) 00007 // any later version. 00008 00009 // This program is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 00014 // You should have received a copy of the GNU General Public License 00015 // along with this program; if not, write to the Free Software Foundation, 00016 // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 00018 // $Id: PDESystemExpression.hpp,v 1.5 2007/12/19 00:45:45 delpinux Exp $ 00019 00020 #ifndef PDE_SYSTEM_EXPRESSION_HPP 00021 #define PDE_SYSTEM_EXPRESSION_HPP 00022 00023 #include <Expression.hpp> 00024 #include <Variable.hpp> 00025 00026 #include <ProblemExpression.hpp> 00027 00028 #include <PDEProblemExpression.hpp> 00029 00030 00040 class PDESystem; 00041 class PDESystemExpression 00042 : public ProblemExpression 00043 { 00044 private: 00045 ReferenceCounting<PDESystem> __pdeSystem; 00047 typedef std::list<ReferenceCounting<PDEProblemExpression> > SystemList; 00048 SystemList __system; 00057 std::ostream& put(std::ostream& os) const 00058 { 00059 for (SystemList::const_iterator i = __system.begin(); i!= __system.end(); 00060 ++i) 00061 os << (*(*i)); 00062 return os; 00063 } 00064 00065 public: 00072 bool hasPOVBoundary() const; 00073 00082 bool hasPredefinedBoundary() const; 00083 00089 size_t size() const 00090 { 00091 return __system.size(); 00092 } 00093 00099 ReferenceCounting<PDESystem> pdeSystem(); 00100 00105 void execute(); 00106 00112 void add(ReferenceCounting<PDEProblemExpression> p) 00113 { 00114 __system.push_back(p); 00115 } 00116 00121 PDESystemExpression(); 00122 00129 PDESystemExpression(const PDESystemExpression& S); 00130 00135 ~PDESystemExpression(); 00136 }; 00137 00138 #endif // PDE_SYSTEM_EXPRESSION_HPP
1.5.6