Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
src/Control/Wrappers/LaplacianIQ.hpp
Go to the documentation of this file.
1 /* *****************************************************************
2  MESQUITE -- The Mesh Quality Improvement Toolkit
3 
4  Copyright 2004 Sandia Corporation and Argonne National
5  Laboratory. Under the terms of Contract DE-AC04-94AL85000
6  with Sandia Corporation, the U.S. Government retains certain
7  rights in this software.
8 
9  This library is free software; you can redistribute it and/or
10  modify it under the terms of the GNU Lesser General Public
11  License as published by the Free Software Foundation; either
12  version 2.1 of the License, or (at your option) any later version.
13 
14  This library is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public License
20  (lgpl.txt) along with this library; if not, write to the Free Software
21  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 
23  diachin2@llnl.gov, djmelan@sandia.gov, mbrewer@sandia.gov,
24  pknupp@sandia.gov, tleurent@mcs.anl.gov, tmunson@mcs.anl.gov
25 
26  ***************************************************************** */
27 // -*- Mode : c++; tab-width: 3; c-tab-always-indent: t; indent-tabs-mode: nil; c-basic-offset: 3 -*-
28 //
29 // SUMMARY:
30 // USAGE:
31 //
32 // AUTHOR: Thomas Leurent <tleurent@mcs.anl.gov>
33 // ORG: Argonne National Laboratory
34 // E-MAIL: tleurent@mcs.anl.gov
35 //
36 // ORIG-DATE: 14-Nov-02 at 16:51:36
37 // LAST-MOD: 23-Jul-03 at 18:06:13 by Thomas Leurent
38 
39 
45 // DESCRIP-END.
46 //
47 
48 
49 #ifndef LaplacianIQ_hpp
50 #define LaplacianIQ_hpp
51 
52 #include "IdealWeightInverseMeanRatio.hpp"
53 #include "LaplacianSmoother.hpp"
54 #include "QualityAssessor.hpp"
55 #include "InstructionQueue.hpp"
56 #include "TerminationCriterion.hpp"
57 
58 namespace Mesquite {
59 
60  class LaplacianIQ : public InstructionQueue {
61  private:
63  LaplacianSmoother* lapl1;
64  QualityAssessor* mQA;
65  TerminationCriterion* mTerm;
66 
67  public:
68 
71  MsqError err;
72  // creates a mean ratio quality metric ...
74 
75  // creates the laplacian smoother procedures
76  lapl1 = new LaplacianSmoother(err);
78 
79  //**************Set stopping criterion****************
82 
84  // sets a culling method on the first QualityImprover
86 
87  // adds 1 pass of pass1
88  this->add_quality_assessor(mQA,err); MSQ_CHKERR(err);
90  this->add_quality_assessor(mQA,err); MSQ_CHKERR(err);
91  }
92 
93 
95  virtual ~LaplacianIQ()
96  {
97  delete inverseMeanRatio;
98  delete lapl1;
99  delete mQA;
100  delete mTerm;
101  }
102 
103  };
104 
105 
106 } // namespace
107 
108 #endif // LaplacianIQ_hpp
virtual ~LaplacianIQ()
Destructor must delete the objects inserted in the queue.
TerminationCriterion * mTerm
void add_culling_method(enum PatchData::culling_method cm)
Sets on the culling method passed as argument.
Used to hold the error state and return it to the application.
Computes the inverse mean ratio of given element.
void set_master_quality_improver(QualityImprover *instr, MsqError &err)
The TerminationCriterion class contains functionality to terminate the VertexMover&#39;s optimization...
ShapeQualityMetric * inverseMeanRatio
A QualityAssessor instance can be inserted into an InstructionQueue to calculate and summarize regist...
LaplacianIQ()
Constructor sets the instructions in the queue.
void add_quality_assessor(QualityAssessor *instr, MsqError &err)
adds a QualityAssessor to the instruction queue.
#define MSQ_CHKERR(err)
Mesquite&#39;s Error Checking macro.
Terminates when the number of iterations exceeds a given integer.
void set_outer_termination_criterion(TerminationCriterion *crit)
Sets in the termination criterion for the outer loop over patches.
void add_criterion_type_with_int(TCType tc_type, int bound, MsqError &err)
Sets the criterion by specifing the TCType and the integer value.
Parent class for the Shape Quality Metrics.