moab
EdgeSizeSimpleImplicit.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines