integratorinterface.h

Go to the documentation of this file.
00001 #ifndef  __IntegratorInterface_h
00002 #define  __IntegratorInterface_h
00003 
00004 
00005 #include  "gascoigne.h"
00006 #include  "equation.h"
00007 #include  "exactsolution.h"
00008 #include  "feminterface.h"
00009 #include  "entrymatrix.h"
00010 #include  "domainrighthandside.h"
00011 #include  "domainfunctional.h"
00012 #include  "boundaryfunctional.h"
00013 #include  "boundaryrighthandside.h"
00014 #include  "boundaryequation.h"
00015 #include  "diracrighthandside.h"
00016 
00017 namespace Gascoigne
00018 {
00019   
00024 
00028 
00029   class IntegratorInterface
00030   {
00031     private:
00032 
00033     protected:
00034 
00035     public:
00036       IntegratorInterface() {}
00037       virtual ~IntegratorInterface() {}
00038   
00039       virtual std::string GetName() const=0;
00040 
00041       virtual void BasicInit() { assert(0);};
00042       
00043       virtual void Rhs(const DomainRightHandSide& RHS, LocalVector& F, const FemInterface& FEM, 
00044           const LocalData& Q, const LocalData& QC) const {
00045         std::cerr << "\"IntegratorInterface::Rhs\" not written!" << std::endl;
00046                                                 assert(0);
00047       }
00048       virtual void Form(const Equation& EQ, LocalVector& F, const FemInterface& FEM, const LocalVector& U, 
00049           const LocalData& Q, const LocalData& QC) const {
00050         std::cerr << "\"IntegratorInterface::Form\" not written!" << std::endl;
00051                                                 assert(0);
00052       }
00053       virtual void AdjointForm(const Equation& EQ, LocalVector& F, const FemInterface& FEM, 
00054           const LocalVector& U, const LocalData& Q, const LocalData& QC) const { 
00055         std::cerr << "\"IntegratorInterface::AdjointForm\" not written!" << std::endl;
00056                                                 assert(0);
00057       }
00058 
00059       virtual void BoundaryRhs(const BoundaryRightHandSide& RHS, LocalVector& F, const FemInterface& FEM, int ile, 
00060           int col, const LocalData& Q, const LocalData& QC) const {
00061         std::cerr << "\"IntegratorInterface::BoundaryRhs\" not written!" << std::endl;
00062                                                 assert(0);
00063       }
00064       virtual void BoundaryForm(const BoundaryEquation& BE, LocalVector& F, const FemInterface& FEM, const LocalVector& U, 
00065           int ile, int col, const LocalData& Q, const LocalData& QC) const {
00066         std::cerr << "\"IntegratorInterface::BoundaryForm\" not written!" << std::endl;
00067                                                 assert(0);
00068       }
00069       virtual void BoundaryMatrix (const BoundaryEquation& BE, EntryMatrix& E, const FemInterface& FEM, 
00070           const LocalVector& U, int ile, int col, const LocalData& Q, const LocalData& QC) const {
00071         std::cerr << "\"IntegratorInterface::BoundaryMatrix\" not written!" << std::endl;
00072                                                 assert(0);
00073       }
00074       virtual void Matrix(const Equation& EQ, EntryMatrix& E, const FemInterface& FEM, const LocalVector& U, 
00075           const LocalData& Q, const LocalData& QC) const {
00076         std::cerr << "\"IntegratorInterface::Matrix\" not written!" << std::endl;
00077                                                 assert(0);
00078       }
00079       virtual double MassMatrix(EntryMatrix& E, const FemInterface& FEM) const {
00080         std::cerr << "\"IntegratorInterface::MassMatrix\" not written!" << std::endl;
00081         assert(0);
00082       }
00083 
00084       virtual void MassForm(const TimePattern& TP, LocalVector& F, const FemInterface& FEM, const LocalVector& U) const {
00085         std::cerr << "\"IntegratorInterface::MassForm\" not written!" << std::endl;
00086         abort();
00087       }
00088 
00089       virtual double ComputeDomainFunctional(const DomainFunctional& F, const FemInterface& FEM, 
00090           const LocalVector& U, const LocalData& Q, const LocalData& QC) const {
00091         std::cerr << "\"IntegratorInterface::ComputeDomainFunctional\" not written!" << std::endl;
00092                                                 assert(0);
00093       }
00094       virtual double ComputeBoundaryFunctional(const BoundaryFunctional& F, const FemInterface& FEM, int ile,
00095           int col, const LocalVector& U, const LocalData& Q, const LocalData& QC) const {
00096         std::cerr << "\"IntegratorInterface::ComputeBoundaryFunctional\" not written!" << std::endl;
00097                                                 assert(0);
00098       }
00099 
00100         
00101       virtual void EvaluateCellRightHandSide(LocalVector &F, const DomainRightHandSide& CF,const FemInterface& FEM, 
00102           const LocalData& Q, const LocalData& QC) const {
00103         std::cerr << "\"IntegratorInterface::EvaluateCellRightHandSide\" not written!" << std::endl;
00104                                                 assert(0); }
00105 
00106       virtual void DiracRhsPoint(LocalVector& b, const FemInterface& E, const Vertex2d& p, const DiracRightHandSide& DRHS, 
00107           int i, const LocalData& Q, const LocalData& QC) const {
00108         std::cerr << "\"IntegratorInterface::DiracRhsPoint\" not written!" << std::endl;
00109                                                 assert(0);
00110       }
00111       virtual void DiracRhsPoint(LocalVector& b, const FemInterface& E, const Vertex3d& p, const DiracRightHandSide& DRHS, 
00112           int i, const LocalData& Q, const LocalData& QC) const {
00113         std::cerr << "\"IntegratorInterface::DiracRhsPoint\" not written!" << std::endl;
00114                                                 assert(0);
00115       }
00116       virtual double ComputePointValue(const FemInterface& E, const Vertex2d& p, const LocalVector& U, int comp) const {
00117         std::cerr << "\"IntegratorInterface::ComputePointValue\" not written!" << std::endl;
00118         assert(0);
00119       }
00120       virtual double ComputePointValue(const FemInterface& E, const Vertex3d& p, const LocalVector& U, int comp) const {
00121         std::cerr << "\"IntegratorInterface::ComputePointValue\" not written!" << std::endl;
00122         assert(0);
00123       }
00124       virtual void ErrorsByExactSolution(LocalVector& dst, const FemInterface& FE, const ExactSolution& ES, 
00125           const LocalVector& U, const LocalData& Q, const LocalData& QC) const {
00126         std::cerr << "\"IntegratorInterface::ErrorsByExactSolution\" not written!" << std::endl;
00127         assert(0);
00128       }
00129       virtual void IntegrateMassDiag(DoubleVector& F, const FemInterface& FEM) const {
00130         std::cerr << "\"IntegratorInterface::IntegrateMassDiag\" not written!" << std::endl;
00131         assert(0);
00132       }
00133 
00134       virtual void IntegrateBoundaryMassDiag(DoubleVector& F, const FemInterface& FEM, int ile, int col) const {
00135         std::cerr << "\"IntegratorInterface::IntegrateBoundaryMassDiag\" not written!" << std::endl;
00136         assert(0);
00137       }
00138   };
00139 }
00140 
00141 #endif

Generated on Thu Sep 14 10:34:36 2006 for Gascoigne by  doxygen 1.4.7