SCOREC core
Parallel unstructured mesh tools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
maInput.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  Copyright 2013 Scientific Computation Research Center,
4  Rensselaer Polytechnic Institute. All rights reserved.
5 
6  The LICENSE file included with this distribution describes the terms
7  of the SCOREC Non-Commercial License this program is distributed under.
8 
9 *******************************************************************************/
10 #ifndef MA_INPUT_H
11 #define MA_INPUT_H
12 
22 #include "maMesh.h"
23 #include "maSize.h"
24 #include "maSolutionTransfer.h"
25 
26 namespace ma {
27 
28 class ShapeHandler;
29 class Adapt;
30 
31 typedef ShapeHandler* (*ShapeHandlerFunction)(Adapt* a);
32 
34 class Input
35 {
36  public:
37  ~Input();
38  Mesh* mesh;
39  SizeField* sizeField;
40  bool ownsSizeField;
41  SolutionTransfer* solutionTransfer;
42  bool ownsSolutionTransfer;
43  ShapeHandlerFunction shapeHandler;
50  bool shouldSnap;
67  double goodQuality;
74  double validQuality;
111  const char* debugFolder;
112 };
113 
119  Mesh* m,
121  SolutionTransfer* s=0,
122  bool logInterpolation=true);
127  Mesh* m,
129  SolutionTransfer* s=0);
139  Mesh* m,
140  apf::Field* sizes,
141  apf::Field* frames,
142  SolutionTransfer* s=0,
143  bool logInterpolation=true);
149  Mesh* m,
150  apf::Field* size,
151  SolutionTransfer* s=0);
152 
156 Input* configureMatching(Mesh* m, int n=1, SolutionTransfer* s=0);
158 Input* configureIdentity(Mesh* m, SizeField* f=0, SolutionTransfer* s=0);
159 
161 void validateInput(Input* in);
162 
163 }
164 
165 #endif
const char * userDefinedLayerTagName
the name of the (user defined) INT tag specifying the boundary layer elements. Use the value of 0 for...
Definition: maInput.h:109
bool shouldTurnLayerToTets
whether to tetrahedronize the boundary layer (default false)
Definition: maInput.h:97
user-defined solution transfer base
void validateInput(Input *in)
used internally, but users can call this if they want
MeshAdapt Size Fields.
Input * configureUniformRefine(Mesh *m, int n=1, SolutionTransfer *s=0)
generate a uniform refinement configuration
double shouldCheckQualityForDoubleSplits
whether to check the quality of split elems in DoubleSplitsCollapse (default false) ...
Definition: maInput.h:70
User-defined Anisotropic size function.
Definition: maSize.h:72
bool splitAllLayerEdges
set to true during UR to get splits in the normal direction
Definition: maInput.h:105
bool shouldRunPreZoltanRib
whether to run zoltan predictive load balancing using RIB (default false)
Definition: maInput.h:80
bool shouldCoarsenLayer
whether to allow layer coarsening (default false)
Definition: maInput.h:103
bool shouldRunPreZoltan
whether to run zoltan predictive load balancing (default false)
Definition: maInput.h:78
double maximumEdgeRatio
the ratio between longest and shortest edges that differentiates a "short edge" element from a "large...
Definition: maInput.h:95
bool shouldTransferToClosestPoint
whether to transfer to the parametric coords of the closest point
Definition: maInput.h:56
bool shouldHandleMatching
whether to update matched entity info (limited support)
Definition: maInput.h:58
bool shouldForceAdaptation
whether to adapt if it makes local quality worse (default false)
Definition: maInput.h:62
bool shouldPrintQuality
whether to print the worst shape quality
Definition: maInput.h:64
double goodQuality
minimum desired mean ratio cubed for simplex elements
Definition: maInput.h:67
int maximumIterations
number of refine/coarsen iterations to run (default 3)
Definition: maInput.h:45
bool shouldRunPostZoltan
whether to run zoltan after adapting (default false)
Definition: maInput.h:88
User configuration for a MeshAdapt run.
Definition: maInput.h:34
bool shouldRunPostZoltanRib
whether to run zoltan RIB after adapting (default false)
Definition: maInput.h:90
MeshAdapt solution transfer interface.
bool shouldRunPostParma
whether to run parma after adapting (default false)
Definition: maInput.h:92
bool shouldFixShape
whether to run shape correction (default true)
Definition: maInput.h:60
bool shouldRunPreParma
whether to run parma predictive load balancing (default false)
Definition: maInput.h:82
User-defined Isotropic size function.
Definition: maSize.h:84
Input * configureIdentity(Mesh *m, SizeField *f=0, SolutionTransfer *s=0)
generate a no-op configuration
bool shouldCoarsen
whether to perform the collapse step
Definition: maInput.h:47
bool shouldCleanupLayer
whether to tetrahedronize abnormal pyramids (default false)
Definition: maInput.h:99
mesh functions for MeshAdapt
bool shouldRefineLayer
whether to allow layer refinement (default false)
Definition: maInput.h:101
double maximumImbalance
imbalance target for all load balancing tools (default 1.10)
Definition: maInput.h:76
const char * debugFolder
this a folder that debugging meshes will be written to, if provided!
Definition: maInput.h:111
bool shouldSnap
whether to snap new vertices to the model surface
Definition: maInput.h:50
Extended mesh interface for modification.
Definition: apfMesh2.h:29
double validQuality
minimum valid mean ratio cubed for simplex elements (default 1e-10)
Definition: maInput.h:74
bool shouldTransferParametric
whether to transfer parametric coordinates
Definition: maInput.h:53
Input * configureMatching(Mesh *m, int n=1, SolutionTransfer *s=0)
generate a matched uniform refinement configuration
Input * configure(Mesh *m, AnisotropicFunction *f, SolutionTransfer *s=0, bool logInterpolation=true)
generate a configuration based on an anisotropic function.
bool shouldRunMidParma
whether to run parma during adaptation (default false)
Definition: maInput.h:86
bool shouldRunMidZoltan
whether to run zoltan during adaptation (default false)
Definition: maInput.h:84