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 shouldRunPostParma;
00087 double maximumEdgeRatio;
00089 bool shouldTurnLayerToTets;
00091 bool shouldCleanupLayer;
00093 bool shouldRefineLayer;
00095 bool shouldCoarsenLayer;
00097 bool splitAllLayerEdges;
00098 };
00099
00103 Input* configure(
00104 Mesh* m,
00105 AnisotropicFunction* f,
00106 SolutionTransfer* s=0);
00110 Input* configure(
00111 Mesh* m,
00112 IsotropicFunction* f,
00113 SolutionTransfer* s=0);
00121 Input* configure(
00122 Mesh* m,
00123 apf::Field* sizes,
00124 apf::Field* frames,
00125 SolutionTransfer* s=0);
00130 Input* configure(
00131 Mesh* m,
00132 apf::Field* size,
00133 SolutionTransfer* s=0);
00134
00136 Input* configureUniformRefine(Mesh* m, int n=1, SolutionTransfer* s=0);
00138 Input* configureMatching(Mesh* m, int n=1, SolutionTransfer* s=0);
00140 Input* configureIdentity(Mesh* m, SizeField* f=0, SolutionTransfer* s=0);
00141
00143 void validateInput(Input* in);
00144
00145 }
00146
00147 #endif