00001
00002
00003 #ifndef DUNE_GROUNDWATER_HH
00004 #define DUNE_GROUNDWATER_HH
00005
00006 #include<iostream>
00007 #include<iomanip>
00008
00009 #include<dune/common/fvector.hh>
00010 #include<dune/common/fmatrix.hh>
00011 #include<dune/common/exceptions.hh>
00012 #include<dune/grid/common/grid.hh>
00013 #include<dune/grid/common/referenceelements.hh>
00014 #include<dune/disc/operators/boundaryconditions.hh>
00015
00032 namespace Dune
00033 {
00043
00044
00058 template<class G, class RT>
00059 class GroundwaterEquationParameters {
00060 typedef typename G::ctype DT;
00061 enum {n=G::dimension, m=1};
00062 typedef typename G::Traits::template Codim<0>::Entity Entity;
00063
00064 public:
00066
00072 virtual const FieldMatrix<DT,n,n>& K (const FieldVector<DT,n>& x, const Entity& e,
00073 const FieldVector<DT,n>& xi) const = 0;
00074
00076
00082 virtual RT q (const FieldVector<DT,n>& x, const Entity& e,
00083 const FieldVector<DT,n>& xi) const = 0;
00084
00086
00090 virtual BoundaryConditions::Flags bctype (const FieldVector<DT,n>& x, const Entity& e,
00091 const FieldVector<DT,n>& xi) const = 0;
00092
00094
00098 virtual RT g (const FieldVector<DT,n>& x, const Entity& e,
00099 const FieldVector<DT,n>& xi) const = 0;
00100
00102
00106 virtual RT J (const FieldVector<DT,n>& x, const Entity& e,
00107 const FieldVector<DT,n>& xi) const = 0;
00108
00109
00111 virtual ~GroundwaterEquationParameters () {}
00112 };
00113
00115 }
00116 #endif