MOAB: Mesh Oriented datABase  (version 5.2.1)
Intx2MeshOnSphere.hpp
Go to the documentation of this file.
00001 /*
00002  * Intx2MeshOnSphere.hpp
00003  *
00004  *  Created on: Oct 3, 2012
00005  *      Author: iulian
00006  */
00007 
00008 #ifndef INTX2MESHONSPHERE_HPP_
00009 #define INTX2MESHONSPHERE_HPP_
00010 
00011 #include "Intx2Mesh.hpp"
00012 
00013 namespace moab
00014 {
00015 
00016 class Intx2MeshOnSphere : public moab::Intx2Mesh
00017 {
00018   public:
00019     Intx2MeshOnSphere( Interface* mbimpl, IntxAreaUtils::AreaMethod amethod = IntxAreaUtils::lHuiller );
00020 
00021     virtual ~Intx2MeshOnSphere();
00022 
00023     void set_radius_source_mesh( double radius )
00024     {
00025         Rsrc = radius;
00026     }
00027     void set_radius_destination_mesh( double radius )
00028     {
00029         Rdest = radius;
00030     }
00031 
00032     double setup_tgt_cell( EntityHandle tgt, int& nsTgt );
00033 
00034     // main method to intersect meshes on a sphere
00035 
00036     ErrorCode computeIntersectionBetweenTgtAndSrc( EntityHandle tgt, EntityHandle src, double* P, int& nP, double& area,
00037                                                    int markb[MAXEDGES], int markr[MAXEDGES], int& nsSrc, int& nsTgt,
00038                                                    bool check_boxes_first = false );
00039 
00040     ErrorCode findNodes( EntityHandle tgt, int nsTgt, EntityHandle src, int nsSrc, double* iP, int nP );
00041 
00042     ErrorCode update_tracer_data( EntityHandle out_set, Tag& tagElem, Tag& tagArea );
00043 #ifdef MOAB_HAVE_MPI
00044     virtual ErrorCode construct_covering_set( EntityHandle& initial_distributed_set, EntityHandle& covering_set );
00045 
00046     virtual ErrorCode build_processor_euler_boxes( EntityHandle euler_set, Range& local_verts );
00047 #endif
00048 
00049     const IntxAreaUtils::AreaMethod areaMethod;
00050 
00051   private:
00052     int plane;           // current gnomonic plane
00053     double Rsrc, Rdest;  // radius of the sphere
00054 };
00055 
00056 } /* namespace moab */
00057 #endif /* INTX2MESHONSPHERE_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines