Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
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 
17 {
18  public:
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 
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 order = 1 );
55 
56  virtual ErrorCode build_processor_euler_boxes( EntityHandle euler_set, Range& local_verts, bool gnomonic = true );
57 #endif
58 
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_ */