MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include <iostream>
#include "moab/Core.hpp"
#include "moab/Interface.hpp"
#include "moab/IntxMesh/IntxUtils.hpp"
#include "TestUtil.hpp"
Go to the source code of this file.
Functions | |
int | main (int, char **) |
int main | ( | int | , |
char ** | |||
) |
Definition at line 14 of file spherical_area_test.cpp.
References moab::IntxAreaUtils::area_on_sphere(), moab::Interface::create_meshset(), ErrorCode, moab::IntxAreaUtils::GaussQuadrature, moab::IntxAreaUtils::Girard, moab::IntxAreaUtils::lHuiller, moab::Interface::load_file(), mb, MB_SUCCESS, MESHSET_SET, moab::R, and STRINGIFY.
{ // check command line arg const char* filename_mesh = STRINGIFY( MESHDIR ) "/mbcslam/eulerHomme.vtk"; // read input mesh in a set Core moab; Interface* mb = &moab; // global EntityHandle sf; ErrorCode rval = mb->create_meshset( MESHSET_SET, sf ); if( MB_SUCCESS != rval ) return 1; rval = mb->load_file( filename_mesh, &sf ); if( MB_SUCCESS != rval ) return 1; double R = 6.; // should be input // compare total area with 4*M_PI * R^2 const double area_sphere = R * R * M_PI * 4.; std::cout << "total area of the sphere : " << area_sphere << "\n"; { moab::IntxAreaUtils areaAdaptor( moab::IntxAreaUtils::Girard ); // use_lHuiller = true double area1 = areaAdaptor.area_on_sphere( mb, sf, R ); std::cout << "total area with Girard : " << area1 << " rel error:" << fabs( ( area1 - area_sphere ) / area_sphere ) << "\n"; } { moab::IntxAreaUtils areaAdaptor( moab::IntxAreaUtils::lHuiller ); double area2 = areaAdaptor.area_on_sphere( mb, sf, R ); std::cout << "total area with l'Huiller : " << area2 << " rel error:" << fabs( ( area2 - area_sphere ) / area_sphere ) << "\n"; } #ifdef MOAB_HAVE_TEMPESTREMAP { moab::IntxAreaUtils areaAdaptor( moab::IntxAreaUtils::GaussQuadrature ); double area3 = areaAdaptor.area_on_sphere( mb, sf, R ); std::cout << "total area with GaussQuadrature : " << area3 << " rel error:" << fabs( ( area3 - area_sphere ) / area_sphere ) << "\n"; } #endif return 0; }