/[escript]/trunk/finley/src/CPPAdapter/MeshAdapter.h
ViewVC logotype

Diff of /trunk/finley/src/CPPAdapter/MeshAdapter.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2640 by jfenwick, Mon Aug 31 06:22:10 2009 UTC revision 3269 by jfenwick, Wed Oct 13 03:21:50 2010 UTC
# Line 1  Line 1 
1    
2  /*******************************************************  /*******************************************************
3  *  *
4  * Copyright (c) 2003-2009 by University of Queensland  * Copyright (c) 2003-2010 by University of Queensland
5  * Earth Systems Science Computational Center (ESSCC)  * Earth Systems Science Computational Center (ESSCC)
6  * http://www.uq.edu.au/esscc  * http://www.uq.edu.au/esscc
7  *  *
# Line 17  Line 17 
17  #include "system_dep.h"  #include "system_dep.h"
18    
19  extern "C" {  extern "C" {
20  #include "../Mesh.h"  #include "finley/Mesh.h"
21  #include "../Finley.h"  #include "finley/Finley.h"
22  #include "../Assemble.h"  #include "finley/Assemble.h"
23  #include "paso/SystemMatrix.h"  #include "paso/SystemMatrix.h"
24  #include "paso/SolverFCT.h"  #include "paso/Transport.h"
25  #include "paso/Paso_MPI.h"  #include "esysUtils/Esys_MPI.h"
26  }  }
27    
28  #include "FinleyError.h"  #include "FinleyError.h"
# Line 43  extern "C" { Line 43  extern "C" {
43  #include <string>  #include <string>
44  #include <sstream>  #include <sstream>
45    
 //  
 // forward declarations  
 class Data;  
   
 //using namespace escript;  
   
46  namespace finley {  namespace finley {
47    
48  struct null_deleter  struct null_deleter
# Line 157  class MeshAdapter : public escript::Abst Line 151  class MeshAdapter : public escript::Abst
151    virtual bool onMasterProcessor() const;    virtual bool onMasterProcessor() const;
152    
153    FINLEY_DLL_API    FINLEY_DLL_API
154  #ifdef PASO_MPI  #ifdef ESYS_MPI
155    MPI_Comm    MPI_Comm
156  #else  #else
157    unsigned int    unsigned int
# Line 166  class MeshAdapter : public escript::Abst Line 160  class MeshAdapter : public escript::Abst
160    
161    /**    /**
162       \brief       \brief
      return this as an AbstractContinuousDomain.  
   */  
   inline const AbstractContinuousDomain& asAbstractContinuousDomain() const  
   {  
      return *(static_cast<const AbstractContinuousDomain*>(this));  
   }  
   
   /**  
      \brief  
      return this as an AbstractDomain.  
   */  
   inline const AbstractDomain& asAbstractDomain() const  
   {  
      return *(static_cast<const AbstractDomain*>(this));  
   }  
   
   /**  
      \brief  
163       Write the current mesh to a file with the given name.       Write the current mesh to a file with the given name.
164       \param fileName Input - The name of the file to write to.       \param fileName Input - The name of the file to write to.
165    */    */
# Line 552  class MeshAdapter : public escript::Abst Line 528  class MeshAdapter : public escript::Abst
528    FINLEY_DLL_API    FINLEY_DLL_API
529    virtual void saveVTK(const std::string& filename,const boost::python::dict& arg,  const std::string& metadata, const std::string& metadata_schema) const;    virtual void saveVTK(const std::string& filename,const boost::python::dict& arg,  const std::string& metadata, const std::string& metadata_schema) const;
530    
531      FINLEY_DLL_API
532      virtual bool ownSample(int fs_code, index_t id) const;
533    
534    /**    /**
535       \brief       \brief
536       returns the function space representation of the type functionSpaceCode on this domain       returns the function space representation of the type functionSpaceCode on this domain
# Line 565  class MeshAdapter : public escript::Abst Line 544  class MeshAdapter : public escript::Abst
544    */    */
545    FINLEY_DLL_API    FINLEY_DLL_API
546    virtual void addPDEToSystem(    virtual void addPDEToSystem(
547                       SystemMatrixAdapter& mat, escript::Data& rhs,                       escript::AbstractSystemMatrix& mat, escript::Data& rhs,
548                       const escript::Data& A, const escript::Data& B, const escript::Data& C,                       const escript::Data& A, const escript::Data& B, const escript::Data& C,
549                       const escript::Data& D, const escript::Data& X, const escript::Data& Y,                       const escript::Data& D, const escript::Data& X, const escript::Data& Y,
550                       const escript::Data& d, const escript::Data& y,                       const escript::Data& d, const escript::Data& y,
# Line 595  class MeshAdapter : public escript::Abst Line 574  class MeshAdapter : public escript::Abst
574    
575    FINLEY_DLL_API    FINLEY_DLL_API
576    virtual void addPDEToTransportProblem(    virtual void addPDEToTransportProblem(
577                       TransportProblemAdapter& tp, escript::Data& source,                       escript::AbstractTransportProblem& tp, escript::Data& source,
578                       const escript::Data& M,                       const escript::Data& M,
579                       const escript::Data& A, const escript::Data& B, const escript::Data& C,const  escript::Data& D,                       const escript::Data& A, const escript::Data& B, const escript::Data& C,const  escript::Data& D,
580                       const  escript::Data& X,const  escript::Data& Y,                       const  escript::Data& X,const  escript::Data& Y,
# Line 608  class MeshAdapter : public escript::Abst Line 587  class MeshAdapter : public escript::Abst
587      creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:      creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:
588    */    */
589    FINLEY_DLL_API    FINLEY_DLL_API
590    SystemMatrixAdapter newSystemMatrix(    escript::ASM_ptr newSystemMatrix(
591                        const int row_blocksize,                        const int row_blocksize,
592                        const escript::FunctionSpace& row_functionspace,                        const escript::FunctionSpace& row_functionspace,
593                        const int column_blocksize,                        const int column_blocksize,
# Line 621  class MeshAdapter : public escript::Abst Line 600  class MeshAdapter : public escript::Abst
600    */    */
601    
602    FINLEY_DLL_API    FINLEY_DLL_API
603    TransportProblemAdapter newTransportProblem(    escript::ATP_ptr newTransportProblem(
604                        const double theta,                        const bool useBackwardEuler,
605                        const int blocksize,                        const int blocksize,
606                        const escript::FunctionSpace& functionspace,                        const escript::FunctionSpace& functionspace,
607                        const int type) const;                        const int type) const;
# Line 679  class MeshAdapter : public escript::Abst Line 658  class MeshAdapter : public escript::Abst
658    virtual    virtual
659    bool canTag(int functionSpaceCode) const;    bool canTag(int functionSpaceCode) const;
660    
661       /**
662       \brief returns the approximation order used for a function space functionSpaceCode
663       */
664    
665      FINLEY_DLL_API
666      virtual
667      int getApproximationOrder(const int functionSpaceCode) const;
668    
669      FINLEY_DLL_API
670      bool supportsContactElements() const;
671    
672    
673   protected:   protected:
674    
# Line 695  class MeshAdapter : public escript::Abst Line 685  class MeshAdapter : public escript::Abst
685    
686  };  };
687    
688    // Do not use this class. It is a convenience wrapper for the dataexporter.
689    class FINLEY_DLL_API ReferenceElementSetWrapper {
690     public:
691      ReferenceElementSetWrapper(Finley_ElementTypeId id, index_t order,
692                                 index_t reducedOrder);
693      ~ReferenceElementSetWrapper();
694    
695      Finley_ReferenceElementSet* getElementSet() const { return m_refSet; }
696    
697     private:
698      Finley_ReferenceElementSet* m_refSet;
699    };
700    
701    
702  } // end of namespace  } // end of namespace
703    
704  #endif  #endif

Legend:
Removed from v.2640  
changed lines
  Added in v.3269

  ViewVC Help
Powered by ViewVC 1.1.26