X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FGHS3DPlugin_Algorithm.idl;h=3467b6f435b973171f2ccadfa51c22f2ad0f589b;hb=refs%2Fheads%2Fcce%2F32737_proposal_squashed_rebased;hp=3f127d7327e3fbe34a5eaf9f7af509b2aee47760;hpb=d5d830d06b9e4b439b4033fbebe53c79296e9dc5;p=plugins%2Fghs3dplugin.git diff --git a/idl/GHS3DPlugin_Algorithm.idl b/idl/GHS3DPlugin_Algorithm.idl index 3f127d7..3467b6f 100644 --- a/idl/GHS3DPlugin_Algorithm.idl +++ b/idl/GHS3DPlugin_Algorithm.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2004-2016 CEA/DEN, EDF R&D +// Copyright (C) 2004-2022 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -32,6 +32,8 @@ */ module GHS3DPlugin { + typedef sequence string_array; + typedef sequence TCoords; struct GHS3DEnforcedVertex { string name; @@ -54,7 +56,7 @@ module GHS3DPlugin typedef sequence GHS3DEnforcedMeshList; /*! - * GHS3DPlugin_GHS3D: interface of "Tetrahedron (GHS3D)" algorithm + * GHS3DPlugin_GHS3D: interface of "MG-Tetra" algorithm */ interface GHS3DPlugin_GHS3D : SMESH::SMESH_3D_Algo { @@ -62,7 +64,7 @@ module GHS3DPlugin }; /*! - * Parameters of "Tetrahedron (GHS3D)" algorithm + * Parameters of "MG-Tetra" algorithm */ interface GHS3DPlugin_Hypothesis : SMESH::SMESH_Hypothesis { @@ -71,6 +73,26 @@ module GHS3DPlugin */ void SetToMeshHoles(in boolean toMesh); boolean GetToMeshHoles(); + /*! + *Set lower boundary of mesh element size + */ + void SetMinSize(in double theMinSize); + double GetMinSize(); + /*! + *Set upper boundary of mesh element size + */ + void SetMaxSize(in double theMaxSize); + double GetMaxSize(); + /*! + * Activate/deactivate volume proximity computation + */ + void SetVolumeProximity( in boolean toUse ); + boolean GetVolumeProximity(); + /*! + * Set number of surface element layers to be generated due to volume proximity + */ + void SetNbVolumeProximityLayers( in short nbLayers ); + short GetNbVolumeProximityLayers(); /*! * To make groups of volumes of different domains when mesh is generated from skin. * Default is to make groups. @@ -82,20 +104,45 @@ module GHS3DPlugin * Maximal size of memory to be used by the algorithm (in Megabytes). * Negative value means not to use this option */ - void SetMaximumMemory(in long MB) raises (SALOME::SALOME_Exception); - long GetMaximumMemory(); + void SetMaximumMemory(in float MB) raises (SALOME::SALOME_Exception); + float GetMaximumMemory(); /*! * Initial size of memory to be used by the algorithm (in Megabytes) in * automatic memory adjustment mode. Default is zero. * Negative value means not to use this option */ - void SetInitialMemory(in long MB) raises (SALOME::SALOME_Exception); - long GetInitialMemory(); + void SetInitialMemory(in float MB) raises (SALOME::SALOME_Exception); + float GetInitialMemory(); /*! * Optimization level: 0-none, 1-light, 2-medium, 3-strong. Default is medium */ void SetOptimizationLevel(in short level) raises (SALOME::SALOME_Exception); short GetOptimizationLevel(); + /*! + * Algorithm selection: 0-MGTetra HPC, 1-MGTetra + */ + void SetAlgorithm(in short level) raises (SALOME::SALOME_Exception); + short GetAlgorithm(); + /*! + * Set use number of threads + */ + void SetUseNumOfThreads(in boolean setThread) raises (SALOME::SALOME_Exception); + boolean GetUseNumOfThreads(); + /*! + * Set number of threads to use + */ + void SetNumOfThreads(in short numThreads); + short GetNumOfThreads(); + /*! + * PThreadMode defined for MGTetra + */ + void SetPthreadMode(in short pThreadMode) raises (SALOME::SALOME_Exception); + short GetPthreadMode(); + /*! + * ParallelMode defined for MGTetra HPC + */ + void SetParallelMode(in short parallelMode) raises (SALOME::SALOME_Exception); + short GetParallelMode(); /*! * Path to working directory */ @@ -142,11 +189,6 @@ module GHS3DPlugin */ void SetToRemoveCentralPoint(in boolean toRemove); boolean GetToRemoveCentralPoint(); - /*! - * To set hiden/undocumented/advanced options - */ - void SetTextOption(in string option); - string GetTextOption(); /*! * To define the volumic gradation */ @@ -162,6 +204,39 @@ module GHS3DPlugin */ void SetRemoveLogOnSuccess(in boolean removeLogOnSuccess); boolean GetRemoveLogOnSuccess(); + /*! + * Set advanced option value + */ + void SetOptionValue(in string optionName, + in string optionValue) raises (SALOME::SALOME_Exception); + string GetOptionValue(in string optionName) raises (SALOME::SALOME_Exception); + void UnsetOption(in string optionName); + /*! + * Adds custom advanced option and its value + */ + void SetAdvancedOption(in string optionsAndValues) // in a form "option_1 v1 option_2 v2'" + raises (SALOME::SALOME_Exception); + string GetAdvancedOption(); + void AddOption(in string optionName, in string optionValue); + string GetOption(in string optionName); + void SetTextOption(in string option); // obsolete + string GetTextOption(); // obsolete + /*! + * Return array of strings each of which is option name concatenated + * with option value devided by semicolon - "option_name:option_value:option_type". + * Option value is empty if an option is not set. + * option_type: 1 if user-define, 0 if default + * Note: the method is mostly for interaction with GUI. + */ + string_array GetOptionValues(); + string_array GetAdvancedOptionValues(); + /*! + * Set option values each in the form "option_name[:option_value][:option_type]". + * Note: the method is mostly for interaction with GUI. + */ + void SetOptionValues(in string_array options) raises (SALOME::SALOME_Exception); + void SetAdvancedOptionValues(in string_array options); + /*! * To set an enforced vertex */ @@ -199,7 +274,55 @@ module GHS3DPlugin * Set/get/unset an enforced vertex (private method for GUI) */ boolean p_SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in string name, in string groupName) raises (SALOME::SALOME_Exception); + + // GUI methods + double GetMaxSizeDefault(); + double GetMinSizeDefault(); + void SetMinMaxSizeDefault( in double theMinSize, in double theMaxSize ); + }; + + /*! + * GHS3DPlugin_Optimizer: interface of "MG-Tetra Optimization" algorithm + */ + interface GHS3DPlugin_Optimizer : SMESH::SMESH_3D_Algo + { }; + + enum PThreadsMode { SAFE, AGGRESSIVE, NONE }; + enum Mode { NO, YES, ONLY }; + + /*! + * Parameters of "MG-Tetra Optimization" algorithm + * + * params inherited from GHS3DPlugin_Hypothesis: + * - create new nodes + * - optimization level + * - init and max memory + * - work dir + * - verbosity + * - log to file + * - keep work files + * - remove log file + * - advanced options + */ + interface GHS3DPlugin_OptimizerHypothesis: GHS3DPlugin_Hypothesis + { + void SetOptimization( in Mode optMode ); + Mode GetOptimization(); + + void SetSplitOverConstrained( in Mode ovcMode ); + Mode GetSplitOverConstrained(); + + void SetSmoothOffSlivers( in boolean toSmooth ); + boolean GetSmoothOffSlivers(); + + void SetPThreadsMode( in PThreadsMode mode ); + PThreadsMode GetPThreadsMode(); + + void SetMaximalNumberOfThreads( in short nb ); + short GetMaximalNumberOfThreads(); + }; + }; #endif