/[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 3379 by gross, Wed Nov 24 04:48:49 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 578  class MeshAdapter : public escript::Abst Line 557  class MeshAdapter : public escript::Abst
557    virtual void addPDEToLumpedSystem(    virtual void addPDEToLumpedSystem(
558                       escript::Data& mat,                       escript::Data& mat,
559                       const escript::Data& D,                       const escript::Data& D,
560                       const escript::Data& d) const;                       const escript::Data& d,
561                 const bool useHRZ) const;
562    
563    /**    /**
564       \brief       \brief
# Line 595  class MeshAdapter : public escript::Abst Line 575  class MeshAdapter : public escript::Abst
575    
576    FINLEY_DLL_API    FINLEY_DLL_API
577    virtual void addPDEToTransportProblem(    virtual void addPDEToTransportProblem(
578                       TransportProblemAdapter& tp, escript::Data& source,                       escript::AbstractTransportProblem& tp, escript::Data& source,
579                       const escript::Data& M,                       const escript::Data& M,
580                       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,
581                       const  escript::Data& X,const  escript::Data& Y,                       const  escript::Data& X,const  escript::Data& Y,
# Line 608  class MeshAdapter : public escript::Abst Line 588  class MeshAdapter : public escript::Abst
588      creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:      creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:
589    */    */
590    FINLEY_DLL_API    FINLEY_DLL_API
591    SystemMatrixAdapter newSystemMatrix(    escript::ASM_ptr newSystemMatrix(
592                        const int row_blocksize,                        const int row_blocksize,
593                        const escript::FunctionSpace& row_functionspace,                        const escript::FunctionSpace& row_functionspace,
594                        const int column_blocksize,                        const int column_blocksize,
# Line 621  class MeshAdapter : public escript::Abst Line 601  class MeshAdapter : public escript::Abst
601    */    */
602    
603    FINLEY_DLL_API    FINLEY_DLL_API
604    TransportProblemAdapter newTransportProblem(    escript::ATP_ptr newTransportProblem(
605                        const double theta,                        const bool useBackwardEuler,
606                        const int blocksize,                        const int blocksize,
607                        const escript::FunctionSpace& functionspace,                        const escript::FunctionSpace& functionspace,
608                        const int type) const;                        const int type) const;
# Line 679  class MeshAdapter : public escript::Abst Line 659  class MeshAdapter : public escript::Abst
659    virtual    virtual
660    bool canTag(int functionSpaceCode) const;    bool canTag(int functionSpaceCode) const;
661    
662       /**
663       \brief returns the approximation order used for a function space functionSpaceCode
664       */
665    
666      FINLEY_DLL_API
667      virtual
668      int getApproximationOrder(const int functionSpaceCode) const;
669    
670      FINLEY_DLL_API
671      bool supportsContactElements() const;
672    
673    
674   protected:   protected:
675    
# Line 695  class MeshAdapter : public escript::Abst Line 686  class MeshAdapter : public escript::Abst
686    
687  };  };
688    
689    // Do not use this class. It is a convenience wrapper for the dataexporter.
690    class FINLEY_DLL_API ReferenceElementSetWrapper {
691     public:
692      ReferenceElementSetWrapper(Finley_ElementTypeId id, index_t order,
693                                 index_t reducedOrder);
694      ~ReferenceElementSetWrapper();
695    
696      Finley_ReferenceElementSet* getElementSet() const { return m_refSet; }
697    
698     private:
699      Finley_ReferenceElementSet* m_refSet;
700    };
701    
702    
703  } // end of namespace  } // end of namespace
704    
705  #endif  #endif

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

  ViewVC Help
Powered by ViewVC 1.1.26