Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef MA_INPUT_H
00011 #define MA_INPUT_H
00012
00022 #include "maMesh.h"
00023 #include "maSize.h"
00024 #include "maSolutionTransfer.h"
00025
00026 namespace ma {
00027
00028 class ShapeHandler;
00029 class Adapt;
00030
00031 typedef ShapeHandler* (*ShapeHandlerFunction)(Adapt* a);
00032
00034 class Input
00035 {
00036 public:
00037 ~Input();
00038 Mesh* mesh;
00039 SizeField* sizeField;
00040 bool ownsSizeField;
00041 SolutionTransfer* solutionTransfer;
00042 bool ownsSolutionTransfer;
00043 ShapeHandlerFunction shapeHandler;
00045 int maximumIterations;
00047 bool shouldCoarsen;
00050 bool shouldSnap;
00053 bool shouldTransferParametric;
00055 bool shouldHandleMatching;
00057 bool shouldFixShape;
00059 bool shouldForceAdaptation;
00061 bool shouldPrintQuality;
00064 double goodQuality;
00068 double validQuality;
00070 double maximumImbalance;
00072 bool shouldRunPreZoltan;
00074 bool shouldRunPreZoltanRib;
00076 bool shouldRunPreParma;
00078 bool shouldRunMidZoltan;
00080 bool shouldRunMidParma;
00082 bool shouldRunPostZoltan;
00084 bool shouldRunPostZoltanRib;
00086 bool shouldRunPostParma;
00089 double maximumEdgeRatio;
00091 bool shouldTurnLayerToTets;
00093 bool shouldCleanupLayer;
00095 bool shouldRefineLayer;
00097 bool shouldCoarsenLayer;
00099 bool splitAllLayerEdges;
00101 const char* debugFolder;
00102 };
00103
00107 Input* configure(
00108 Mesh* m,
00109 AnisotropicFunction* f,
00110 SolutionTransfer* s=0);
00114 Input* configure(
00115 Mesh* m,
00116 IsotropicFunction* f,
00117 SolutionTransfer* s=0);
00125 Input* configure(
00126 Mesh* m,
00127 apf::Field* sizes,
00128 apf::Field* frames,
00129 SolutionTransfer* s=0);
00134 Input* configure(
00135 Mesh* m,
00136 apf::Field* size,
00137 SolutionTransfer* s=0);
00138
00140 Input* configureUniformRefine(Mesh* m, int n=1, SolutionTransfer* s=0);
00142 Input* configureMatching(Mesh* m, int n=1, SolutionTransfer* s=0);
00144 Input* configureIdentity(Mesh* m, SizeField* f=0, SolutionTransfer* s=0);
00145
00147 void validateInput(Input* in);
00148
00149 }
00150
00151 #endif