+
+
+## MG-Tetra Optimization algorithm - optimizer of tetrahedral meshes
+#
+# It can be created by calling smeshBuilder.Mesh.Tetrahedron( smeshBuilder.MG_Tetra_Optimization )
+class GHS3D_Optimizer(GHS3D_Algorithm):
+
+ ## name of the dynamic method in smeshBuilder.Mesh class
+ # @internal
+ meshMethod = "Tetrahedron"
+ ## type of algorithm used with helper function in smeshBuilder.Mesh class
+ # @internal
+ algoType = MG_Tetra_Optimization
+ ## doc string of the method in smeshBuilder.Mesh class
+ # @internal
+ docHelper = "Creates MG-Tetra optimizer of tetrahedral meshes"
+
+ ## Private constructor.
+ # @param mesh parent mesh object algorithm is assigned to
+ # @param geom - not used
+ def __init__(self, mesh, geom=0):
+ GHS3D_Algorithm.__init__(self, mesh)
+
+ # remove some inherited methods
+ # del self.SetToMeshHoles
+ # del self.SetToMakeGroupsOfDomains
+ # del self.SetToUseBoundaryRecoveryVersion
+ # del self.SetFEMCorrection
+ # del self.SetToRemoveCentralPoint
+ # del self.SetEnforcedVertex
+ # del self.SetEnforcedVertexGeom
+ # del self.RemoveEnforcedVertex
+ # del self.RemoveEnforcedVertexGeom
+ # del self.SetEnforcedMesh
+ # del self.SetTextOption
+ pass
+
+ ## Defines hypothesis having several parameters
+ # @return hypothesis object
+ def Parameters(self):
+ if not self.params:
+ self.params = self.Hypothesis("MG-Tetra Optimization Parameters", [],
+ "libGHS3DEngine.so", UseExisting=0)
+ pass
+ return self.params
+
+ ## Set Optimization mode
+ # @param optMode optimization mode, one of the following values:
+ # smeshBuilder.Mode_NO,
+ # smeshBuilder.Mode_YES (default),
+ # smeshBuilder.MODE_ONLY
+ def SetOptimizationOnly(self, optMode ):
+ self.Parameters().SetOptimizationOnly(optMode)
+ pass
+
+ ## Set mode of splitting over-constrained elements
+ # @param ovcMode, one of the following values
+ # smeshBuilder.Mode_NO (default),
+ # smeshBuilder.Mode_YES,
+ # smeshBuilder.Mode_ONLY
+ def SetSplitOverConstrained(self, ovcMode ):
+ self.Parameters().SetSplitOverConstrained(ovcMode)
+ pass
+
+ ## Activate smoothing sliver elements:
+ # @param toSmooth - Boolean flag
+ def SetSmoothOffSlivers(self, toSmooth ):
+ self.Parameters().SetSmoothOffSlivers(toSmooth)
+ pass
+
+ ## Set multithread mode
+ # @param mode - the mode, one of the following values:
+ # smeshBuilder.Mode_SAFE,
+ # smeshBuilder.Mode_AGGRESSIVE,
+ # smeshBuilder.Mode_NONE (default)
+ def SetPThreadsMode(self, mode ):
+ self.Parameters().SetPThreadsMode(mode)
+ pass
+
+ ## Set maximal number of threads
+ # @param nb - number of threads
+ def SetMaximalNumberOfThreads(self, nb ):
+ self.Parameters().SetMaximalNumberOfThreads(nb)
+ pass
+
+
+ ## Set Optimization level:
+ # @param level optimization level, one of the following values
+ # - None_Optimization
+ # - Light_Optimization
+ # - Standard_Optimization
+ # - StandardPlus_Optimization
+ # - Strong_Optimization.
+ # .
+ # Default is Standard_Optimization
+ def SetOptimizationLevel(self, level):
+ self.Parameters().SetOptimizationLevel(level)
+ pass
+
+ ## Set maximal size of memory to be used by the algorithm (in Megabytes).
+ # @param MB maximal size of memory
+ def SetMaximumMemory(self, MB):
+ self.Parameters().SetMaximumMemory(MB)
+ pass
+
+ ## Set initial size of memory to be used by the algorithm (in Megabytes) in
+ # automatic memory adjustment mode.
+ # @param MB initial size of memory
+ def SetInitialMemory(self, MB):
+ self.Parameters().SetInitialMemory(MB)
+ pass
+
+ ## Set path to working directory.
+ # @param path working directory
+ def SetWorkingDirectory(self, path):
+ self.Parameters().SetWorkingDirectory(path)
+ pass
+
+ ## To keep working files or remove them.
+ # @param toKeep "keep working files" flag value
+ def SetKeepFiles(self, toKeep):
+ self.Parameters().SetKeepFiles(toKeep)
+ pass
+
+ ## Remove or not the log file (if any) in case of successful computation.
+ # The log file remains in case of errors anyway. If
+ # the "keep working files" flag is set to true, this option
+ # has no effect.
+ # @param toRemove "remove log on success" flag value
+ def SetRemoveLogOnSuccess(self, toRemove):
+ self.Parameters().SetRemoveLogOnSuccess(toRemove)
+ pass
+
+ ## Print the the log in a file. If set to false, the
+ # log is printed on the standard output
+ # @param toPrintLogInFile "print log in a file" flag value
+ def SetPrintLogInFile(self, toPrintLogInFile):
+ self.Parameters().SetStandardOutputLog(not toPrintLogInFile)
+ pass
+
+ ## Set verbosity level [0-10].
+ # @param level verbosity level
+ # - 0 - no standard output,
+ # - 2 - prints the data, quality statistics of the skin and final meshes and
+ # indicates when the final mesh is being saved. In addition the software
+ # gives indication regarding the CPU time.
+ # - 10 - same as 2 plus the main steps in the computation, quality statistics
+ # histogram of the skin mesh, quality statistics histogram together with
+ # the characteristics of the final mesh.
+ def SetVerboseLevel(self, level):
+ self.Parameters().SetVerboseLevel(level)
+ pass
+
+ ## To create new nodes.
+ # @param toCreate "create new nodes" flag value
+ def SetToCreateNewNodes(self, toCreate):
+ self.Parameters().SetToCreateNewNodes(toCreate)
+ pass
+
+ ## Sets command line option as text.
+ # @param option command line option
+ def SetAdvancedOption(self, option):
+ self.Parameters().SetAdvancedOption(option)
+ pass
+
+ pass # end of GHS3D_Optimizer class