moab
|
00001 /* 00002 * MOAB, a Mesh-Oriented datABase, is a software component for creating, 00003 * storing and accessing finite element mesh data. 00004 * 00005 * Copyright 2004 Sandia Corporation. Under the terms of Contract 00006 * DE-AC04-94AL85000 with Sandia Coroporation, the U.S. Government 00007 * retains certain rights in this software. 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Lesser General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2.1 of the License, or (at your option) any later version. 00013 * 00014 */ 00015 00030 #ifndef MOAB_EDGE_SIZE_SIMPLE_IMPLICIT_HPP 00031 #define MOAB_EDGE_SIZE_SIMPLE_IMPLICIT_HPP 00032 00033 #include "EdgeSizeEvaluator.hpp" 00034 00035 namespace moab { 00036 00037 class MB_DLL_EXPORT EdgeSizeSimpleImplicit : public EdgeSizeEvaluator 00038 { 00039 public: 00041 EdgeSizeSimpleImplicit(); 00043 virtual ~EdgeSizeSimpleImplicit(); 00044 00047 virtual bool evaluate_edge( 00048 const double* p0, const void* t0, 00049 double* p1, void* t1, 00050 const double* p2, const void* t2 ); 00051 00053 virtual void set_implicit_function( double* coeffs ); 00055 void get_implicit_function( double*& coeffs ); 00056 00058 virtual void set_ratio( double r ) { this->ratio = r; } 00060 double get_ratio() { return this->ratio; } 00061 00062 protected: 00063 double coeffA[6]; 00064 double coeffB[3]; 00065 double coeffC; 00066 double ratio; 00067 }; 00068 00069 } // namespace moab 00070 00071 #endif // MOAB_EDGE_SIZE_SIMPLE_IMPLICIT_HPP