/[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 2548 by jfenwick, Mon Jul 20 06:20:06 2009 UTC revision 3259 by jfenwick, Mon Oct 11 01:48:14 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 156  class MeshAdapter : public escript::Abst Line 150  class MeshAdapter : public escript::Abst
150    FINLEY_DLL_API    FINLEY_DLL_API
151    virtual bool onMasterProcessor() const;    virtual bool onMasterProcessor() const;
152    
153    /**    FINLEY_DLL_API
154       \brief  #ifdef ESYS_MPI
155       return this as an AbstractContinuousDomain.    MPI_Comm
156    */  #else
157    inline const AbstractContinuousDomain& asAbstractContinuousDomain() const    unsigned int
158    {  #endif
159       return *(static_cast<const AbstractContinuousDomain*>(this));    getMPIComm() const;
   }  
   
   /**  
      \brief  
      return this as an AbstractDomain.  
   */  
   inline const AbstractDomain& asAbstractDomain() const  
   {  
      return *(static_cast<const AbstractDomain*>(this));  
   }  
160    
161    /**    /**
162       \brief       \brief
# Line 439  class MeshAdapter : public escript::Abst Line 423  class MeshAdapter : public escript::Abst
423    virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;    virtual bool probeInterpolationOnDomain(int functionSpaceType_source,int functionSpaceType_target) const;
424    
425    /**    /**
426        \brief given a vector of FunctionSpace typecodes, pass back a code which then can all be interpolated to.
427        \return true is result is valid, false if not
428      */
429      FINLEY_DLL_API
430      bool
431      commonFunctionSpace(const std::vector<int>& fs, int& resultcode) const;
432    
433      /**
434       \brief       \brief
435       interpolates data given on source onto target where source and target are given on different domains.       interpolates data given on source onto target where source and target are given on different domains.
436       has to be implemented by the actual Domain adapter.       has to be implemented by the actual Domain adapter.
# Line 536  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 592  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 605  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 663  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 679  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.2548  
changed lines
  Added in v.3259

  ViewVC Help
Powered by ViewVC 1.1.26