Go to the documentation of this file. 1
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
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;
63 double Rsrc, Rdest;
64 };
65
66 }
67 #endif