Loading [MathJax]/extensions/tex2jax.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Intx2MeshOnSphere.hpp
Go to the documentation of this file.
1 /* 2  * Intx2MeshOnSphere.hpp 3  * 4  * Created on: Oct 3, 2012 5  * Author: iulian 6  */ 7  8 #ifndef INTX2MESHONSPHERE_HPP_ 9 #define INTX2MESHONSPHERE_HPP_ 10  11 #include "Intx2Mesh.hpp" 12  13 namespace moab 14 { 15  16 class Intx2MeshOnSphere : public moab::Intx2Mesh 17 { 18  public: 19  Intx2MeshOnSphere( Interface* mbimpl, IntxAreaUtils::AreaMethod amethod = IntxAreaUtils::lHuiller ); 20  21  virtual ~Intx2MeshOnSphere(); 22  23  void set_radius_source_mesh( double radius ) 24  { 25  Rsrc = radius; 26  } 27  void set_radius_destination_mesh( double radius ) 28  { 29  Rdest = radius; 30  } 31  32  double setup_tgt_cell( EntityHandle tgt, int& nsTgt ); 33  34  // main method to intersect meshes on a sphere 35  36  ErrorCode computeIntersectionBetweenTgtAndSrc( EntityHandle tgt, 37  EntityHandle src, 38  double* P, 39  int& nP, 40  double& area, 41  int markb[MAXEDGES], 42  int markr[MAXEDGES], 43  int& nsSrc, 44  int& nsTgt, 45  bool check_boxes_first = false ); 46  47  ErrorCode findNodes( EntityHandle tgt, int nsTgt, EntityHandle src, int nsSrc, double* iP, int nP ); 48  49  ErrorCode update_tracer_data( EntityHandle out_set, Tag& tagElem, Tag& tagArea ); 50 #ifdef MOAB_HAVE_MPI 51  virtual ErrorCode construct_covering_set( EntityHandle& initial_distributed_set, 52  EntityHandle& covering_set, 53  bool gnomonic = true, 54  int nb_ghost_layers = 0 ); 55  56  virtual ErrorCode build_processor_euler_boxes( EntityHandle euler_set, Range& local_verts, bool gnomonic = true ); 57 #endif 58  59  const IntxAreaUtils::AreaMethod areaMethod; 60  61  private: 62  int plane; // current gnomonic plane 63  double Rsrc, Rdest; // radius of the sphere 64 }; 65  66 } /* namespace moab */ 67 #endif /* INTX2MESHONSPHERE_HPP_ */