Debug, reduce code, mesh selection, dump python.

This commit is contained in:
jfa 2021-12-14 16:56:00 +03:00
parent b33bc07ec2
commit bdd5747242
15 changed files with 1665 additions and 4306 deletions

View File

@ -20,7 +20,8 @@
#ifndef _SMESH_HOMARD_IDL
#define _SMESH_HOMARD_IDL
#include "SALOME_Component.idl"
#include "SMESH_Mesh.idl"
#include "SALOME_Exception.idl"
#include "SALOMEDS.idl"
@ -30,71 +31,47 @@ module SMESHHOMARD
typedef sequence<double> extrema;
typedef sequence<string> ListGroupType;
typedef sequence<string> ListBoundaryGroupType;
typedef sequence<string> listeIterFilles;
typedef sequence<string> listeFieldInterpsIter;
typedef sequence<string> listeFieldInterpTSRsIter;
typedef sequence<string> listeFieldInterpsHypo;
typedef sequence<string> listeIters;
typedef sequence<string> listeComposantsHypo;
typedef sequence<long> listeTypes;
typedef sequence<string> listeHypotheses;
typedef sequence<string> listeIterations;
typedef sequence<string> listeCases;
typedef sequence<string> listeBoundarys;
struct InfosHypo
{
string FieldName;
long UsCmpI;
long UsField;
long TypeThR;
double ThreshR;
long TypeThC;
double ThreshC;
};
interface HOMARD_Boundary : Engines::EngineComponent
interface HOMARD_Boundary : SALOME::GenericObj
{
// Generalites
void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
long Delete() raises (SALOME::SALOME_Exception);
string GetDumpPython() raises (SALOME::SALOME_Exception);
string GetDumpPython() raises (SALOME::SALOME_Exception);
// Caracteristiques
void SetType (in long Type) raises (SALOME::SALOME_Exception);
long GetType() raises (SALOME::SALOME_Exception);
void SetType (in long Type) raises (SALOME::SALOME_Exception);
long GetType() raises (SALOME::SALOME_Exception);
void SetDataFile(in string DataFile) raises (SALOME::SALOME_Exception);
string GetDataFile() raises (SALOME::SALOME_Exception);
void SetDataFile(in string DataFile) raises (SALOME::SALOME_Exception);
string GetDataFile() raises (SALOME::SALOME_Exception);
void SetMeshName(in string MeshName) raises (SALOME::SALOME_Exception);
string GetMeshName() raises (SALOME::SALOME_Exception);
void SetMeshName(in string MeshName) raises (SALOME::SALOME_Exception);
string GetMeshName() raises (SALOME::SALOME_Exception);
void SetCylinder (in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxe, in double Yaxe, in double Zaxe, in double rayon)
raises (SALOME::SALOME_Exception);
raises (SALOME::SALOME_Exception);
void SetSphere (in double Xcentre, in double Ycentre, in double Zcentre, in double rayon)
raises (SALOME::SALOME_Exception);
raises (SALOME::SALOME_Exception);
void SetConeR (in double Xcentre1, in double Ycentre1, in double Zcentre1, in double Rayon1,
in double Xcentre2, in double Ycentre2, in double Zcentre2, in double Rayon2)
raises (SALOME::SALOME_Exception);
void SetConeR (in double Xcentre1, in double Ycentre1, in double Zcentre1,
in double Rayon1,
in double Xcentre2, in double Ycentre2, in double Zcentre2,
in double Rayon2) raises (SALOME::SALOME_Exception);
void SetConeA(in double Xaxe,in double Yaxe,in double Zaxe,in double Angle,
in double Xcentre,in double Ycentre,in double ZCentre)
raises (SALOME::SALOME_Exception);
void SetConeA(in double Xaxe, in double Yaxe, in double Zaxe, in double Angle,
in double Xcentre, in double Ycentre, in double ZCentre)
raises (SALOME::SALOME_Exception);
void SetTorus (in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxe, in double Yaxe, in double Zaxe,
in double rayonRev, in double rayonPri)
raises (SALOME::SALOME_Exception);
SMESHHOMARD::double_array GetCoords() raises (SALOME::SALOME_Exception);
void SetLimit (in double Xincr, in double Yincr, in double Zincr)
@ -108,28 +85,22 @@ module SMESHHOMARD
// Liens avec les autres iterations
void SetCaseCreation(in string NomCas) raises (SALOME::SALOME_Exception);
string GetCaseCreation() raises (SALOME::SALOME_Exception);
};
interface HOMARD_Iteration : Engines::EngineComponent
interface HOMARD_Iteration : SALOME::GenericObj
{
// Generalites
void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
long Delete(in long Option,
in boolean doRemoveWorkingFiles) raises (SALOME::SALOME_Exception);
string GetDumpPython() raises (SALOME::SALOME_Exception);
void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
// Caracteristiques
void SetDirNameLoc(in string NomDir) raises (SALOME::SALOME_Exception);
string GetDirNameLoc() raises (SALOME::SALOME_Exception);
void SetDirNameLoc(in string NomDir) raises (SALOME::SALOME_Exception);
string GetDirNameLoc() raises (SALOME::SALOME_Exception);
string GetDirName() raises (SALOME::SALOME_Exception);
string GetDirName() raises (SALOME::SALOME_Exception);
void SetNumber(in long NumIter) raises (SALOME::SALOME_Exception);
long GetNumber() raises (SALOME::SALOME_Exception);
void SetNumber(in long NumIter) raises (SALOME::SALOME_Exception);
long GetNumber() raises (SALOME::SALOME_Exception);
void SetState(in long State) raises (SALOME::SALOME_Exception);
long GetState() raises (SALOME::SALOME_Exception);
@ -140,88 +111,42 @@ module SMESHHOMARD
void SetMeshFile(in string MeshFile) raises (SALOME::SALOME_Exception);
string GetMeshFile() raises (SALOME::SALOME_Exception);
void SetFieldFile(in string FieldFile) raises (SALOME::SALOME_Exception);
string GetFieldFile() raises (SALOME::SALOME_Exception);
// Instants pour le champ de pilotage
void SetTimeStep(in long TimeStep) raises (SALOME::SALOME_Exception);
void SetTimeStepRank(in long TimeStep, in long Rank)
raises (SALOME::SALOME_Exception);
void SetTimeStepRankLast() raises (SALOME::SALOME_Exception);
long GetTimeStep() raises (SALOME::SALOME_Exception);
long GetRank() raises (SALOME::SALOME_Exception);
// Instants pour un champ a interpoler
void SetFieldInterpTimeStep(in string FieldInterp, in long TimeStep)
raises (SALOME::SALOME_Exception);
void SetFieldInterpTimeStepRank(in string FieldInterp, in long TimeStep, in long Rank)
raises (SALOME::SALOME_Exception);
listeFieldInterpTSRsIter GetFieldInterpsTimeStepRank() raises (SALOME::SALOME_Exception);
void SetFieldInterp(in string FieldInterp) raises (SALOME::SALOME_Exception);
listeFieldInterpsIter GetFieldInterps() raises (SALOME::SALOME_Exception);
void SupprFieldInterps() raises (SALOME::SALOME_Exception);
// Fichier des messages
void SetLogFile(in string LogFile) raises (SALOME::SALOME_Exception);
string GetLogFile() raises (SALOME::SALOME_Exception);
long Compute(in long etatMenage, in long Option) raises (SALOME::SALOME_Exception);
void MeshInfo(in long Qual, in long Diam, in long Conn, in long Tail, in long Inte)
raises (SALOME::SALOME_Exception);
void MeshInfoOption(in long Qual, in long Diam, in long Conn, in long Tail, in long Inte, in long Option)
raises (SALOME::SALOME_Exception);
void SetFileInfo(in string FileInfo) raises (SALOME::SALOME_Exception);
string GetFileInfo() raises (SALOME::SALOME_Exception);
void SetFileInfo(in string FileInfo) raises (SALOME::SALOME_Exception);
string GetFileInfo() raises (SALOME::SALOME_Exception);
// Liens avec les autres iterations
HOMARD_Iteration NextIteration(in string NomIter) raises (SALOME::SALOME_Exception);
void LinkNextIteration(in string NomIter) raises (SALOME::SALOME_Exception);
void UnLinkNextIteration(in string NomIter) raises (SALOME::SALOME_Exception);
listeIterFilles GetIterations() raises (SALOME::SALOME_Exception);
void SetIterParentName(in string NomIterParent) raises (SALOME::SALOME_Exception);
string GetIterParentName() raises (SALOME::SALOME_Exception);
HOMARD_Iteration GetIterParent() raises (SALOME::SALOME_Exception);
// Liens avec les autres structures
void SetCaseName(in string NomCas) raises (SALOME::SALOME_Exception);
string GetCaseName() raises (SALOME::SALOME_Exception);
void AssociateHypo(in string NomHypo) raises (SALOME::SALOME_Exception);
void SetHypoName(in string NomHypo) raises (SALOME::SALOME_Exception);
string GetHypoName() raises (SALOME::SALOME_Exception);
// Divers
// Drivers
void SetInfoCompute(in long MessInfo) raises (SALOME::SALOME_Exception);
long GetInfoCompute() raises (SALOME::SALOME_Exception);
};
interface HOMARD_Cas : Engines::EngineComponent
interface HOMARD_Cas : SALOME::GenericObj
{
// Generalites
void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
long Delete(in long Option) raises (SALOME::SALOME_Exception);
string GetDumpPython() raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
string GetDumpPython() raises (SALOME::SALOME_Exception);
// Caracteristiques
void SetDirName(in string NomDir) raises (SALOME::SALOME_Exception);
string GetDirName() raises (SALOME::SALOME_Exception);
void SetDirName(in string NomDir) raises (SALOME::SALOME_Exception);
string GetDirName() raises (SALOME::SALOME_Exception);
long GetState() raises (SALOME::SALOME_Exception);
long GetNumberofIter() raises (SALOME::SALOME_Exception);
void SetConfType(in long ConfType) raises (SALOME::SALOME_Exception);
long GetConfType() raises (SALOME::SALOME_Exception);
void SetExtType(in long ExtType) raises (SALOME::SALOME_Exception);
long GetExtType() raises (SALOME::SALOME_Exception);
void SetConfType(in long ConfType) raises (SALOME::SALOME_Exception);
long GetConfType() raises (SALOME::SALOME_Exception);
void SetBoundingBox(in extrema LesExtremes) raises (SALOME::SALOME_Exception);
extrema GetBoundingBox() raises (SALOME::SALOME_Exception);
@ -230,199 +155,99 @@ module SMESHHOMARD
void SetGroups(in ListGroupType ListGroup) raises (SALOME::SALOME_Exception);
ListGroupType GetGroups() raises (SALOME::SALOME_Exception);
void AddBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception);
void AddBoundaryGroup(in string BoundaryName, in string Group)
raises (SALOME::SALOME_Exception);
ListBoundaryGroupType GetBoundaryGroup() raises (SALOME::SALOME_Exception);
void SupprBoundaryGroup() raises (SALOME::SALOME_Exception);
void AddBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception);
void AddBoundaryGroup(in string BoundaryName,
in string Group) raises (SALOME::SALOME_Exception);
ListBoundaryGroupType GetBoundaryGroup() raises (SALOME::SALOME_Exception);
void SupprBoundaryGroup() raises (SALOME::SALOME_Exception);
void SetPyram(in long Pyram) raises (SALOME::SALOME_Exception);
long GetPyram() raises (SALOME::SALOME_Exception);
void MeshInfo(in long Qual, in long Diam, in long Conn, in long Tail, in long Inte)
raises (SALOME::SALOME_Exception);
// Liens avec les autres structures
string GetIter0Name () raises (SALOME::SALOME_Exception);
HOMARD_Iteration GetIter0 () raises (SALOME::SALOME_Exception);
HOMARD_Iteration NextIteration(in string IterName) raises (SALOME::SALOME_Exception);
HOMARD_Iteration LastIteration() raises (SALOME::SALOME_Exception);
void AddIteration (in string IterName) raises (SALOME::SALOME_Exception);
void AddIteration (in string IterName) raises (SALOME::SALOME_Exception);
};
interface HOMARD_Hypothesis : Engines::EngineComponent
interface HOMARD_Hypothesis : SALOME::GenericObj
{
// Generalites
void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
long Delete() raises (SALOME::SALOME_Exception);
string GetDumpPython() raises (SALOME::SALOME_Exception);
// Caracteristiques
void SetUnifRefinUnRef(in long RaffDera) raises (SALOME::SALOME_Exception);
listeTypes GetAdapRefinUnRef() raises (SALOME::SALOME_Exception);
long GetAdapType() raises (SALOME::SALOME_Exception);
long GetRefinType() raises (SALOME::SALOME_Exception);
long GetUnRefType() raises (SALOME::SALOME_Exception);
void SetField(in string FieldName) raises (SALOME::SALOME_Exception);
string GetFieldName() raises (SALOME::SALOME_Exception);
void SetUseField(in long UsField) raises (SALOME::SALOME_Exception);
InfosHypo GetField() raises (SALOME::SALOME_Exception);
void SetUseComp(in long UsCmpI) raises (SALOME::SALOME_Exception);
void AddComp(in string NomComp) raises (SALOME::SALOME_Exception);
void SupprComp(in string NomComp) raises (SALOME::SALOME_Exception);
void SupprComps() raises (SALOME::SALOME_Exception);
listeComposantsHypo GetComps() raises (SALOME::SALOME_Exception);
void SetRefinThr(in long TypeThR, in double ThreshR) raises (SALOME::SALOME_Exception);
long GetRefinThrType() raises (SALOME::SALOME_Exception);
void SetUnRefThr(in long TypeThC, in double ThreshC) raises (SALOME::SALOME_Exception);
long GetUnRefThrType() raises (SALOME::SALOME_Exception);
void SetNivMax(in long NivMax) raises (SALOME::SALOME_Exception);
long GetNivMax() raises (SALOME::SALOME_Exception);
void SetDiamMin(in double DiamMin) raises (SALOME::SALOME_Exception);
double GetDiamMin() raises (SALOME::SALOME_Exception);
void SetAdapInit(in long AdapInit) raises (SALOME::SALOME_Exception);
long GetAdapInit() raises (SALOME::SALOME_Exception);
void SetExtraOutput(in long ExtraOutput) raises (SALOME::SALOME_Exception);
long GetExtraOutput() raises (SALOME::SALOME_Exception);
void AddGroup(in string LeGroupe) raises (SALOME::SALOME_Exception);
void SupprGroup(in string LeGroupe) raises (SALOME::SALOME_Exception);
void SupprGroups() raises (SALOME::SALOME_Exception);
void SetGroups(in ListGroupType ListGroup) raises (SALOME::SALOME_Exception);
ListGroupType GetGroups() raises (SALOME::SALOME_Exception);
void SetTypeFieldInterp(in long TypeFieldInterp) raises (SALOME::SALOME_Exception);
long GetTypeFieldInterp() raises (SALOME::SALOME_Exception);
void AddFieldInterp(in string FieldInterp) raises (SALOME::SALOME_Exception);
void AddFieldInterpType(in string FieldInterp, in long TypeInterp)
raises (SALOME::SALOME_Exception);
void SupprFieldInterp(in string FieldInterp) raises (SALOME::SALOME_Exception);
void SupprFieldInterps() raises (SALOME::SALOME_Exception);
listeFieldInterpsHypo GetFieldInterps() raises (SALOME::SALOME_Exception);
// Liens avec les autres structures
void SetCaseCreation(in string NomCas) raises (SALOME::SALOME_Exception);
string GetCaseCreation() raises (SALOME::SALOME_Exception);
void LinkIteration(in string NomIteration) raises (SALOME::SALOME_Exception);
void UnLinkIteration(in string NomIteration) raises (SALOME::SALOME_Exception);
listeIters GetIterations() raises (SALOME::SALOME_Exception);
};
interface HOMARD_Gen : SALOME::GenericObj
{
//
// Creation
//
HOMARD_Boundary CreateBoundaryCAO (in string BoundaryName, in string FileName)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryDi (in string BoundaryName, in string MeshName, in string FileName)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryCylinder (in string BoundaryName,
in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxis, in double Yaxis, in double Zaxis,
in double Radius)
raises (SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundarySphere (in string BoundaryName,
in double Xcentre, in double Ycentre, in double Zcentre,
in double Radius)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryConeR (in string BoundaryName,
in double Xcentre1, in double Ycentre1, in double Zcentre1, in double Radius1,
in double Xcentre2, in double Ycentre2, in double Zcentre2, in double Radius2)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryConeA (in string BoundaryName,
in double Xaxis, in double Yaxis, in double Zaxis, in double Angle,
in double Xcentre, in double Ycentre, in double Zcentre)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryTorus (in string BoundaryName,
in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxis, in double Yaxis, in double Zaxis,
in double RadiusRev, in double RadiusPri)
raises (SALOME::SALOME_Exception);
HOMARD_Cas CreateCase(in string CaseName, in string MeshName, in string FileName )
raises(SALOME::SALOME_Exception);
HOMARD_Hypothesis CreateHypothesis(in string HypoName )
raises(SALOME::SALOME_Exception);
//
// A.2. Les informations
//
HOMARD_Boundary GetBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception);
HOMARD_Cas GetCase(in string CaseName) raises (SALOME::SALOME_Exception);
HOMARD_Hypothesis GetHypothesis(in string HypoName) raises (SALOME::SALOME_Exception);
HOMARD_Iteration GetIteration(in string IterName) raises (SALOME::SALOME_Exception);
listeBoundarys GetAllBoundarysName() raises (SALOME::SALOME_Exception);
listeCases GetAllCasesName() raises (SALOME::SALOME_Exception);
listeHypotheses GetAllHypothesesName() raises (SALOME::SALOME_Exception);
listeIterations GetAllIterationsName() raises (SALOME::SALOME_Exception);
void MeshInfo(in string CaseName, in string MeshName, in string FileName, in string DirName, in long Qual, in long Diam, in long Conn, in long Tail, in long Inte )
raises(SALOME::SALOME_Exception);
HOMARD_Iteration LastIteration(in string CaseName) raises (SALOME::SALOME_Exception);
//
// A.4. Les caracteristiques generales
//
void SetLanguageShort (in string LanguageShort) raises (SALOME::SALOME_Exception);
string GetLanguageShort () raises (SALOME::SALOME_Exception);
//
// B. Les methodes qui suivent n'apparaissent pas dans le composant HOMARD dans YACS
// L'utilisateur ne devrait pas les connaitre (ni s'en servir, a fortiori)
//
HOMARD_Iteration CreateIteration(in string IterName, in string PreviousIterName )
HOMARD_Boundary CreateBoundaryCAO (in string BoundaryName, in string FileName)
raises(SALOME::SALOME_Exception);
//
void InvalideBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);
void InvalideHypo (in string HypoName) raises (SALOME::SALOME_Exception);
void InvalideIter (in string IterName) raises (SALOME::SALOME_Exception);
void InvalideIterOption (in string IterName, in long Option,
in boolean doRemoveWorkingFiles) raises(SALOME::SALOME_Exception);
long DeleteBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);
long DeleteCase(in string CaseName, in long Option) raises(SALOME::SALOME_Exception);
long DeleteHypo(in string HypoName) raises (SALOME::SALOME_Exception);
long DeleteIteration(in string IterName, in long Option,
in boolean doRemoveWorkingFiles) raises(SALOME::SALOME_Exception);
long DeleteIterationOption(in string IterName,
in long Option1, in long Option2,
in boolean doRemoveWorkingFiles) raises(SALOME::SALOME_Exception);
//
void AssociateIterHypo(in string IterName, in string HypoName)
HOMARD_Boundary CreateBoundaryDi (in string BoundaryName, in string MeshName,
in string FileName)
raises(SALOME::SALOME_Exception);
long Compute (in string IterName, in long CleanOption, in long modeHOMARD,
in long Option1, in long Option2)
raises(SALOME::SALOME_Exception);
//
string CreateDirNameIter(in string NomDir, in long option )
raises(SALOME::SALOME_Exception);
string VerifieDir (in string NomDir) raises (SALOME::SALOME_Exception);
//
void PublishResultInSmesh(in string FileName, in long Option)
raises(SALOME::SALOME_Exception);
void PublishMeshIterInSmesh (in string IterName) raises(SALOME::SALOME_Exception);
//
// Les preferences
//
void SetPublisMesh (in long PublisMeshIN, in long PublisMeshOUT)
HOMARD_Boundary CreateBoundaryCylinder (in string BoundaryName,
in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxis, in double Yaxis, in double Zaxis,
in double Radius)
raises (SALOME::SALOME_Exception);
long GetPublisMeshIN () raises (SALOME::SALOME_Exception);
long GetPublisMeshOUT () raises (SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundarySphere (in string BoundaryName,
in double Xcentre, in double Ycentre, in double Zcentre,
in double Radius)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryConeR (in string BoundaryName,
in double Xcentre1, in double Ycentre1, in double Zcentre1,
in double Radius1,
in double Xcentre2, in double Ycentre2, in double Zcentre2,
in double Radius2)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryConeA (in string BoundaryName,
in double Xaxis, in double Yaxis, in double Zaxis,
in double Angle,
in double Xcentre, in double Ycentre, in double Zcentre)
raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryTorus (in string BoundaryName,
in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxis, in double Yaxis, in double Zaxis,
in double RadiusRev, in double RadiusPri)
raises (SALOME::SALOME_Exception);
// CreateCase
HOMARD_Cas CreateCaseOnMesh(in string MeshName,
in SMESH::SMESH_Mesh smeshMesh,
in string theWorkingDir) raises(SALOME::SALOME_Exception);
HOMARD_Cas CreateCase(in string MeshName,
in string FileName,
in string theWorkingDir) raises(SALOME::SALOME_Exception);
// A.2. Information
HOMARD_Boundary GetBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception);
HOMARD_Cas GetCase() raises (SALOME::SALOME_Exception);
HOMARD_Iteration GetIteration(in long numIter) raises (SALOME::SALOME_Exception);
listeBoundarys GetAllBoundarysName() raises (SALOME::SALOME_Exception);
// B. CreateIteration
HOMARD_Iteration CreateIteration() raises (SALOME::SALOME_Exception);
void InvalideBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);
long DeleteBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);
long DeleteCase() raises (SALOME::SALOME_Exception);
long Compute() raises (SALOME::SALOME_Exception);
string CreateDirNameIter (in string NomDir, in long num)
raises (SALOME::SALOME_Exception);
void PublishResultInSmesh (in string FileName, in long Option)
raises (SALOME::SALOME_Exception);
// Preferences
void SetKeepMedOUT (in boolean theKeepMedOUT);
void SetPublishMeshOUT (in boolean thePublishMeshOUT);
void SetMeshNameOUT (in string theMeshName) raises (SALOME::SALOME_Exception);
void SetMeshFileOUT (in string theFileName) raises (SALOME::SALOME_Exception);
void SetVerboseLevel (in long theLevel);
void SetKeepWorkingFiles (in boolean theKeepWorkingFiles);
void SetLogInFile (in boolean theLogInFile);
void SetLogFile (in string theFileName) raises (SALOME::SALOME_Exception);
void SetRemoveLogOnSuccess (in boolean theRemoveLogOnSuccess);
};
}; // module SMESHHOMARD

View File

@ -126,7 +126,6 @@ namespace SMESHHOMARDImpl
os << cas.GetName();
os << separator() << cas.GetDirName();
os << separator() << cas.GetConfType();
os << separator() << cas.GetExtType();
std::vector<double> coor = cas.GetBoundingBox();
os << separator() << coor.size();
@ -148,7 +147,7 @@ namespace SMESHHOMARDImpl
for ( it = ListString.begin(); it != ListString.end(); ++it )
os << separator() << *it;
os << separator() << cas.GetPyram();
os << separator() << 0; //cas.GetPyram()
saux = os.str();
// MESSAGE( ". Fin avec "<<saux);
@ -341,10 +340,6 @@ namespace SMESHHOMARDImpl
if ( !ok ) return false;
cas.SetConfType( atoi( chunk.c_str() ) );
chunk = getNextChunk( stream, start, ok );
if ( !ok ) return false;
cas.SetExtType( atoi( chunk.c_str() ) );
chunk = getNextChunk( stream, start, ok );
if ( !ok ) return false;
@ -392,7 +387,7 @@ namespace SMESHHOMARDImpl
chunk = getNextChunk( stream, start, ok );
if ( !ok ) return false;
cas.SetPyram( atoi( chunk.c_str() ) );
//cas.SetPyram( atoi( chunk.c_str() ) );
return true;
}
@ -737,57 +732,47 @@ std::string HOMARD_Boundary::GetName() const
std::string HOMARD_Boundary::GetDumpPython() const
{
std::ostringstream aScript;
aScript << "\n# Creation of the ";
//
switch (_Type)
{
switch (_Type) {
case -1:
{
aScript << "CAO boundary " << _Name << "\n";
aScript << "\t" << _Name << " = homard.CreateBoundaryCAO(\"" << _Name << "\", ";
aScript << _Name << " = smeshhomard.CreateBoundaryCAO(\"" << _Name << "\", ";
aScript << "\"" << _DataFile << "\")\n";
break ;
}
case 0:
{
aScript << "discrete boundary " << _Name << "\n";
aScript << "\t" << _Name << " = homard.CreateBoundaryDi(\"" << _Name << "\", ";
aScript << _Name << " = smeshhomard.CreateBoundaryDi(\"" << _Name << "\", ";
aScript << "\"" << _MeshName << "\", ";
aScript << "\"" << _DataFile << "\")\n";
break ;
}
case 1:
{
aScript << "cylinder " << _Name << "\n";
aScript << "\t" << _Name << " = homard.CreateBoundaryCylinder(\"" << _Name << "\", ";
aScript << _Name << " = smeshhomard.CreateBoundaryCylinder(\"" << _Name << "\", ";
aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _rayon << ")\n";
break ;
}
case 2:
{
aScript << "sphere " << _Name << "\n";
aScript << "\t" << _Name << " = homard.CreateBoundarySphere(\"" << _Name << "\", ";
aScript << _Name << " = smeshhomard.CreateBoundarySphere(\"" << _Name << "\", ";
aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _rayon << ")\n";
break ;
}
case 3:
{
aScript << "cone " << _Name << "\n";
aScript << "\t" << _Name << " = homard.CreateBoundaryConeA(\"" << _Name << "\", ";
aScript << _Name << " = smeshhomard.CreateBoundaryConeA(\"" << _Name << "\", ";
aScript << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Angle << ", " << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ")\n";
break ;
}
case 4:
{
aScript << "cone " << _Name << "\n";
aScript << "\t" << _Name << " = homard.CreateBoundaryConeR(\"" << _Name << "\", ";
aScript << _Name << " = smeshhomard.CreateBoundaryConeR(\"" << _Name << "\", ";
aScript << _Xcentre1 << ", " << _Ycentre1 << ", " << _Zcentre1 << ", " << _Rayon1 << ", " << _Xcentre2 << ", " << _Ycentre2 << ", " << _Zcentre2 << ", " << _Rayon2 << ")\n";
break ;
}
case 5:
{
aScript << "tore " << _Name << "\n";
aScript << "\t" << _Name << " = homard.CreateBoundaryTorus(\"" << _Name << "\", ";
aScript << _Name << " = smeshhomard.CreateBoundaryTorus(\"" << _Name << "\", ";
aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Rayon1 << ", " << _Rayon2 << ")\n";
break ;
}
@ -994,7 +979,7 @@ std::string HOMARD_Boundary::GetCaseCreation() const
*/
//=============================================================================
HOMARD_Cas::HOMARD_Cas():
_Name(""), _NomDir("/tmp"), _ConfType(0), _ExtType(0)
_Name(""), _NomDir("/tmp"), _ConfType(0)
{
MESSAGE("HOMARD_Cas");
}
@ -1022,27 +1007,16 @@ std::string HOMARD_Cas::GetName() const
std::string HOMARD_Cas::GetDumpPython() const
{
std::ostringstream aScript;
aScript << "\t" <<_Name << ".SetDirName(\"";
aScript << _NomDir << "\")\n";
aScript << "\t" <<_Name << ".SetConfType(";
aScript << _ConfType << ")\n";
aScript << "\t" <<_Name << ".SetExtType(";
aScript << _ExtType << ")\n";
// Suivi de frontieres
//aScript << _Name << ".SetDirName(\"" << _NomDir << "\")\n";
aScript << _Name << ".SetConfType(" << _ConfType << ")\n";
// Suivi de frontieres
std::list<std::string>::const_iterator it = _ListBoundaryGroup.begin();
while(it != _ListBoundaryGroup.end())
{
aScript << "\t" <<_Name << ".AddBoundaryGroup(\"";
aScript << *it << "\", \"";
while (it != _ListBoundaryGroup.end()) {
aScript << _Name << ".AddBoundaryGroup(\"" << *it << "\", \"";
it++;
aScript << *it << "\")\n";
it++;
}
if ( _Pyram > 0 )
{
aScript << "\t" <<_Name << ".SetPyram(";
aScript << _Pyram << ")\n";
}
return aScript.str();
}
@ -1103,20 +1077,6 @@ const int HOMARD_Cas::GetConfType() const
return _ConfType;
}
//
// Le type exterieur
//
//=============================================================================
void HOMARD_Cas::SetExtType( int ExtType )
{
// VERIFICATION( (ExtType>=0) && (ExtType<=2) );
_ExtType = ExtType;
}
//=============================================================================
const int HOMARD_Cas::GetExtType() const
{
return _ExtType;
}
//
// La boite englobante
//
//=============================================================================
@ -1189,16 +1149,6 @@ void HOMARD_Cas::SupprBoundaryGroup()
_ListBoundaryGroup.clear();
}
//=============================================================================
void HOMARD_Cas::SetPyram( int Pyram )
{
_Pyram = Pyram;
}
//=============================================================================
const int HOMARD_Cas::GetPyram() const
{
return _Pyram;
}
//=============================================================================
//=============================================================================
// Liens avec les autres structures
//=============================================================================
@ -1268,18 +1218,15 @@ void HomardDriver::TexteInit( const std::string DirCompute, const std::string Lo
//
}
//===============================================================================
void HomardDriver::TexteAdap( int ExtType )
void HomardDriver::TexteAdap()
{
MESSAGE("TexteAdap");
//
_Texte += "Action homa\n" ;
if ( ExtType == 0 ) { _Texte += "CCAssoci med\n" ; }
else if ( ExtType == 1 ) { _Texte += "CCAssoci saturne\n" ; }
else { _Texte += "CCAssoci saturne_2d\n" ; }
_Texte += "ModeHOMA 1\n" ;
_Texte += "NumeIter " + _siter + "\n" ;
_modeHOMARD = 1 ;
//
_Texte += "Action homa\n";
_Texte += "CCAssoci med\n";
_Texte += "ModeHOMA 1\n";
_Texte += "NumeIter " + _siter + "\n";
_modeHOMARD = 1;
}
//===============================================================================
void HomardDriver::TexteInfo( int TypeBila, int NumeIter )
@ -2163,15 +2110,10 @@ void HomardDriver::TexteFieldInterpNameType( int NumeChamp, const std::string Fi
//===============================================================================
// F. Les options avancees
//===============================================================================
void HomardDriver::TexteAdvanced( int Pyram, int NivMax, double DiamMin, int AdapInit, int ExtraOutput )
void HomardDriver::TexteAdvanced( int NivMax, double DiamMin, int AdapInit, int ExtraOutput )
{
MESSAGE("TexteAdvanced, Pyram ="<<Pyram<<", NivMax ="<<NivMax<<", DiamMin ="<<DiamMin<<", AdapInit ="<<AdapInit<<", ExtraOutput ="<<ExtraOutput);
MESSAGE("TexteAdvanced, NivMax ="<<NivMax<<", DiamMin ="<<DiamMin<<", AdapInit ="<<AdapInit<<", ExtraOutput ="<<ExtraOutput);
if ( Pyram > 0 )
{
_Texte += "# Autorisation de pyramides dans le maillage initial\n" ;
_Texte += "TypeElem ignore_pyra\n" ;
}
if ( NivMax > 0 )
{
_Texte += "# Niveaux extremes\n" ;
@ -2277,12 +2219,12 @@ void HomardDriver::CreeFichierDonn( )
//
}
//===============================================================================
int HomardDriver::ExecuteHomard(int option)
int HomardDriver::ExecuteHomard()
{
MESSAGE("ExecuteHomard, avec option = "<<option);
MESSAGE("ExecuteHomard");
std::string commande ;
int codret ;
// Copie des Fichiers HOMARD
// Copie des Fichiers HOMARD
commande = "cp " + _NomFichierConf + " " + _NomFichierConfBase ;
codret = system(commande.c_str()) ;
@ -2322,9 +2264,11 @@ HOMARD_Hypothesis::HOMARD_Hypothesis():
_Name(""), _NomCasCreation(""),
_TypeAdap(-1), _TypeRaff(0), _TypeDera(0),
_Field(""),
_TypeThR(0), _ThreshR(0),
_TypeThC(0), _ThreshC(0),
_UsField(0), _UsCmpI(0), _TypeFieldInterp(0)
_TypeThR(0), _TypeThC(0),
_ThreshR(0), _ThreshC(0),
_UsField(0), _UsCmpI(0), _TypeFieldInterp(0),
_NivMax(-1), _DiamMin(-1.0), _AdapInit(0), _ExtraOutput(1)
{
MESSAGE("HOMARD_Hypothesis");
}
@ -2352,94 +2296,6 @@ std::string HOMARD_Hypothesis::GetName() const
return _Name;
}
//=============================================================================
std::string HOMARD_Hypothesis::GetDumpPython() const
{
std::ostringstream aScript;
aScript << "\n# Creation of the hypothesis " << _Name << "\n" ;
aScript << "\t" << _Name << " = homard.CreateHypothesis(\"" << _Name << "\")\n";
if ( _TypeAdap == -1 )
{
int TypeRaffDera ;
if ( _TypeRaff == 1 ) { TypeRaffDera = 1 ; }
else { TypeRaffDera = -1 ; }
aScript << "\t" << _Name << ".SetUnifRefinUnRef(" << TypeRaffDera << ")\n";
}
// Raffinement selon des zones geometriques
std::list<std::string>::const_iterator it = _ListZone.begin();
int TypeUse ;
while(it != _ListZone.end())
{
aScript << "\t" << _Name << ".AddZone(\"" << *it;
it++;
if ( *it == "1" ) { TypeUse = 1 ; }
else { TypeUse = -1 ; }
aScript << "\", " << TypeUse << ")\n";
it++;
}
// Raffinement selon un champ
if ( _TypeAdap == 1 )
{
aScript << "\t" << _Name << ".SetField(\"" << _Field << "\")\n";
aScript << "\t" << _Name << ".SetUseField(" << _UsField << ")\n";
aScript << "\t" << _Name << ".SetUseComp(" << _UsCmpI << ")\n";
std::list<std::string>::const_iterator it_comp = _ListComp.begin();
while(it_comp != _ListComp.end())
{
aScript << "\t" << _Name << ".AddComp(\"" << *it_comp << "\")\n";
it_comp++;
}
if ( _TypeRaff == 1 )
{
aScript << "\t" << _Name << ".SetRefinThr(" << _TypeThR << ", " << _ThreshR << ")\n";
}
if ( _TypeDera == 1 )
{
aScript << "\t" << _Name << ".SetUnRefThr(" << _TypeThC << ", " << _ThreshC << ")\n";
}
}
// Filtrage du raffinement par des groupes
for ( it=_ListGroupSelected.begin(); it!=_ListGroupSelected.end();it++)
aScript << "\t" << _Name << ".AddGroup(\"" << (*it) << "\")\n" ;
// Interpolation des champs
if ( _TypeFieldInterp == 2 )
{
std::list<std::string>::const_iterator it_champ = _ListFieldInterp.begin();
while(it_champ != _ListFieldInterp.end())
{
aScript << "\t" << _Name << ".AddFieldInterpType( \"" << *it_champ << "\" " ;
it_champ++;
aScript << ", " << *it_champ << ")\n";
it_champ++;
}
}
else if ( _TypeFieldInterp != 0 )
{
aScript << "\t" << _Name << ".SetTypeFieldInterp(" << _TypeFieldInterp << ")\n";
}
if ( _NivMax > 0 )
{
aScript << "\t" <<_Name << ".SetNivMax(" << _NivMax << ")\n";
}
if ( _DiamMin > 0 )
{
aScript << "\t" <<_Name << ".SetDiamMin(" << _DiamMin << ")\n";
}
if ( _AdapInit != 0 )
{
aScript << "\t" <<_Name << ".SetAdapInit(" << _AdapInit << ")\n";
}
if ( _ExtraOutput != 1 )
{
aScript << "\t" <<_Name << ".SetExtraOutput(" << _ExtraOutput << ")\n";
}
return aScript.str();
}
//=============================================================================
//=============================================================================
// Caracteristiques
//=============================================================================
@ -2843,83 +2699,6 @@ std::string HOMARD_Iteration::GetName() const
return _Name;
}
//=============================================================================
std::string HOMARD_Iteration::GetDumpPython() const
{
if (_IterParent == "") return std::string(" ") ; // Pas de creation explicite de iteration 0";
MESSAGE (". Ecriture de l iteration " << _Name );
std::ostringstream aScript;
aScript << "\n# Creation of the iteration " << _Name << "\n";
if( _NumIter == 1 )
{
aScript << "\t" << _Name << " = " << _NomCas << ".NextIteration(\"" << _Name << "\")\n";
}
else
{
aScript << "\t" << _Name << " = " << _IterParent << ".NextIteration(\"" << _Name << "\")\n";
}
// L'hypothese (doit etre au debut)
aScript << "\t" << _Name << ".AssociateHypo(\"" << _NomHypo << "\")\n";
// Le nom du maillage produit
// MESSAGE (".. maillage produit " << _NomMesh );
aScript << "\t" << _Name << ".SetMeshName(\"" << _NomMesh << "\")\n" ;
// Le fichier du maillage produit
aScript << "\t" << _Name << ".SetMeshFile(\"" << _MeshFile << "\")\n";
// Le fichier des champs
if ( _FieldFile != "" )
{
aScript << "\t" << _Name << ".SetFieldFile(\"" << _FieldFile << "\")\n";
}
// Si champ de pilotage, valeurs de pas de temps
MESSAGE (". champ de pilotage : _TimeStep = " << _TimeStep << ", _Rank : " << _Rank);
if ( _TimeStep != -1 )
{
if ( _TimeStep == -2 ) {
aScript << "\t" << _Name << ".SetTimeStepRankLast()\n";
}
else
{
if ( _TimeStep != -1 )
{
if ( _Rank == -1 )
{
aScript << "\t" << _Name << ".SetTimeStep( " << _TimeStep << " )\n";
}
else
{
aScript << "\t" << _Name << ".SetTimeStepRank( " << _TimeStep << ", " << _Rank << " )\n";
}
}
}
}
// Les instants d'interpolation
MESSAGE (". instants d'interpolation ");
std::list<std::string>::const_iterator it = _ListFieldInterpTSR.begin() ;
while(it != _ListFieldInterpTSR.end())
{
std::string FieldName = std::string((*it)) ;
// MESSAGE ("... FieldName = "<< FieldName);
(*it++);
std::string TimeStepstr = std::string((*it)) ;
// MESSAGE ("... TimeStepstr = "<< TimeStepstr);
(*it++);
std::string Rankstr = std::string((*it)) ;
// MESSAGE ("... Rankstr = "<< Rankstr);
(*it++);
aScript << "\t" << _Name << ".SetFieldInterpTimeStepRank( \"" << FieldName << "\"" ;
aScript << ", " << TimeStepstr ;
aScript << ", " << Rankstr << " )\n" ;
}
// Compute
MESSAGE (". Compute ");
if ( _Etat == 2 ) { aScript << "\tcodret = " <<_Name << ".Compute(1, 1)\n"; }
else { aScript << "\t#codret = " <<_Name << ".Compute(1, 1)\n"; }
// MESSAGE (". Fin de l ecriture de l iteration " << _Name );
return aScript.str();
}
//=============================================================================
//=============================================================================
// Caracteristiques
//=============================================================================

View File

@ -70,13 +70,13 @@ public:
HOMARD_Boundary();
~HOMARD_Boundary();
// Generalites
// Generalites
void SetName( const char* Name );
std::string GetName() const;
std::string GetDumpPython() const;
// Caracteristiques
// Caracteristiques
void SetType( int Type );
int GetType() const;
@ -133,13 +133,13 @@ public:
HOMARD_Cas();
~HOMARD_Cas();
// Generalites
// Generalites
void SetName( const char* Name );
std::string GetName() const;
std::string GetDumpPython() const;
// Caracteristiques
// Caracteristiques
int SetDirName( const char* NomDir );
std::string GetDirName() const;
@ -148,9 +148,6 @@ public:
void SetConfType( int ConfType );
const int GetConfType() const;
void SetExtType( int ExtType );
const int GetExtType() const;
void SetBoundingBox( const std::vector<double>& extremas );
const std::vector<double>& GetBoundingBox() const;
@ -164,9 +161,6 @@ public:
const std::list<std::string>& GetBoundaryGroup() const;
void SupprBoundaryGroup();
void SetPyram( int Pyram );
const int GetPyram() const;
// Liens avec les autres structures
std::string GetIter0Name() const;
@ -178,15 +172,12 @@ private:
std::string _Name;
std::string _NomDir;
int _ConfType;
int _ExtType;
int _Etat;
std::vector<double> _Boite; // cf HomardQTCommun pour structure du vecteur
std::list<std::string> _ListGroup;
std::list<std::string> _ListBoundaryGroup;
int _Pyram;
typedef std::string IterName;
typedef std::list<IterName> IterNames;
IterNames _ListIter;
@ -202,7 +193,7 @@ public:
void TexteInfo( int TypeBila, int NumeIter );
void TexteMajCoords( int NumeIter );
void CreeFichierDonn();
void TexteAdap( int ExtType );
void TexteAdap();
void CreeFichier();
void TexteMaillage( const std::string NomMesh, const std::string MeshFile, int apres );
void TexteMaillageHOMARD( const std::string Dir, const std::string liter, int apres );
@ -225,11 +216,10 @@ public:
void TexteFieldInterp( const std::string FieldFile, const std::string MeshFile );
void TexteFieldInterpAll();
void TexteFieldInterpNameType( int NumeChamp, const std::string FieldName, const std::string TypeInterp, int TimeStep, int Rank );
void TexteAdvanced( int Pyram, int NivMax, double DiamMin, int AdapInit, int LevelOutput );
void TexteAdvanced( int NivMax, double DiamMin, int AdapInit, int LevelOutput );
void TexteInfoCompute( int MessInfo );
//
int ExecuteHomard(int option);
//
int ExecuteHomard();
public:
int _modeHOMARD;
@ -293,8 +283,6 @@ public:
void SetName( const char* Name );
std::string GetName() const;
std::string GetDumpPython() const;
// Caracteristiques
void SetAdapType( int TypeAdap );
int GetAdapType() const;
@ -399,13 +387,11 @@ public:
HOMARD_Iteration();
~HOMARD_Iteration();
// Generalites
// Generalites
void SetName( const char* Name );
std::string GetName() const;
std::string GetDumpPython() const;
// Caracteristiques
// Caracteristiques
void SetDirNameLoc( const char* NomDir );
std::string GetDirNameLoc() const;

View File

@ -71,14 +71,6 @@
<source>HOM_MED_FILE_4</source>
<translation>The mesh in this MED file cannot be read.</translation>
</message>
<message>
<source>HOM_MED_FILE_5</source>
<translation>No field in this MED file.</translation>
</message>
<message>
<source>HOM_MED_FILE_6</source>
<translation>The field(s) in this MED file cannot be read.</translation>
</message>
<message>
<source>HOM_SELECT_STUDY</source>
<translation>Select a study object with associated MED file \n or select a MED file.</translation>
@ -151,10 +143,6 @@
<source>HOM_ITER_HYPO</source>
<translation>A hypothesis must be selected.</translation>
</message>
<message>
<source>HOM_ITER_FIELD_FILE</source>
<translation>With this hypothesis, a file for the field must be given.</translation>
</message>
<message>
<source>HOM_ITER_STARTING_POINT_0</source>
<translation>Mesh</translation>
@ -175,10 +163,6 @@
<source>HOM_HYPO_NAME</source>
<translation>The hypothesis must be named.</translation>
</message>
<message>
<source>HOM_HYPO_FIELD_FILE</source>
<translation>A file for the field must be given.</translation>
</message>
<message>
<source>HOM_HYPO_NORM_L2</source>
<translation>L2 norm</translation>

View File

@ -119,34 +119,10 @@
<source>HOM_MED_FILE_4</source>
<translation>Impossible de lire le maillage de ce fichier MED.</translation>
</message>
<message>
<source>HOM_MED_FILE_5</source>
<translation>Ce fichier MED ne contient aucun champ.</translation>
</message>
<message>
<source>HOM_MED_FILE_6</source>
<translation>Impossible de lire le(s) champ(s) de ce fichier MED.</translation>
</message>
<message>
<source>HOM_SELECT_STUDY</source>
<translation>Sélectionner une étude avec un fichier MED associé\n ou sélectionner un fichier MED.</translation>
</message>
<message>
<source>Create a case</source>
<translation>Création d'un cas</translation>
</message>
<message>
<source>HOM_CASE_NAME</source>
<translation>Il faut donner un nom au cas.</translation>
</message>
<message>
<source>HOM_CASE_DIRECTORY_1</source>
<translation>Il faut choisir un répertoire de travail pour le cas.</translation>
</message>
<message>
<source>HOM_CASE_DIRECTORY_2</source>
<translation>Ce répertoire est déjà utilisé par le cas </translation>
</message>
<message>
<source>HOM_CASE_DIRECTORY_3</source>
<translation>Un répertoire valide doit être choisi.</translation>
@ -215,10 +191,6 @@
<source>HOM_ITER_HYPO</source>
<translation>Choisir une hypothèse.</translation>
</message>
<message>
<source>HOM_ITER_FIELD_FILE</source>
<translation>Avec cette hypothèse, il faut fournir le fichier du champ.</translation>
</message>
<message>
<source>HOM_ITER_STARTING_POINT_0</source>
<translation>Maillage</translation>
@ -411,30 +383,6 @@
<source>Mesh n+1</source>
<translation>Maillage n+1</translation>
</message>
<message>
<source>Field information</source>
<translation>Information sur les champs</translation>
</message>
<message>
<source>Field file</source>
<translation>Fichier des champs</translation>
</message>
<message>
<source>No time step</source>
<translation>Sans pas de temps</translation>
</message>
<message>
<source>Last time step</source>
<translation>Dernier pas de temps</translation>
</message>
<message>
<source>Chosen time step</source>
<translation>Pas de temps choisi</translation>
</message>
<message>
<source>Time step</source>
<translation>Pas de temps</translation>
</message>
<message>
<source>Rank</source>
<translation>Numéro d'ordre</translation>
@ -451,10 +399,6 @@
<source>HOM_HYPO_NAME</source>
<translation>Il faut donner un nom à l'hypothèse.</translation>
</message>
<message>
<source>HOM_HYPO_FIELD_FILE</source>
<translation>Il faut fournir le fichier du champ.</translation>
</message>
<message>
<source>HOM_HYPO_NORM_L2</source>
<translation>Norme L2</translation>
@ -487,10 +431,6 @@
<source>Uniform</source>
<translation>Uniforme</translation>
</message>
<message>
<source>Driven by a field</source>
<translation>Pilotage par un champ</translation>
</message>
<message>
<source>Uniform adaptation</source>
<translation>Adaptation uniforme</translation>
@ -507,18 +447,6 @@
<source>Nothing</source>
<translation>Rien</translation>
</message>
<message>
<source>File of the fields</source>
<translation>Fichier des champs</translation>
</message>
<message>
<source>Governing field for the adaptation</source>
<translation>Champ pilotant l'adaptation</translation>
</message>
<message>
<source>Field name</source>
<translation>Nom du champ</translation>
</message>
<message>
<source>Jump between elements</source>
<translation>Saut entre éléments</translation>
@ -555,10 +483,6 @@
<source>No coarsening</source>
<translation>Sans déraffinement</translation>
</message>
<message>
<source>Field Interpolation</source>
<translation>Interpolation des champs</translation>
</message>
<message>
<source>Chosen</source>
<translation>Choisi</translation>

View File

@ -216,10 +216,6 @@
<source>HOM_ITER_HYPO</source>
<translation></translation>
</message>
<message>
<source>HOM_ITER_FIELD_FILE</source>
<translation></translation>
</message>
<message>
<source>HOM_ITER_STARTING_POINT_0</source>
<translation></translation>
@ -400,30 +396,6 @@
<source>Mesh n+1</source>
<translation> n + 1</translation>
</message>
<message>
<source>Field information</source>
<translation></translation>
</message>
<message>
<source>Field file</source>
<translation> </translation>
</message>
<message>
<source>No time step</source>
<translation></translation>
</message>
<message>
<source>Last time step</source>
<translation></translation>
</message>
<message>
<source>Chosen time step</source>
<translation></translation>
</message>
<message>
<source>Time step</source>
<translation></translation>
</message>
<message>
<source>Rank</source>
<translation></translation>
@ -440,10 +412,6 @@
<source>HOM_HYPO_NAME</source>
<translation></translation>
</message>
<message>
<source>HOM_HYPO_FIELD_FILE</source>
<translation></translation>
</message>
<message>
<source>HOM_HYPO_NORM_L2</source>
<translation> L2</translation>
@ -476,10 +444,6 @@
<source>Uniform</source>
<translation></translation>
</message>
<message>
<source>Driven by a field</source>
<translation></translation>
</message>
<message>
<source>Uniform adaptation</source>
<translation></translation>
@ -492,18 +456,6 @@
<source>Nothing</source>
<translation></translation>
</message>
<message>
<source>File of the fields</source>
<translation></translation>
</message>
<message>
<source>Governing field for the adaptation</source>
<translation></translation>
</message>
<message>
<source>Field name</source>
<translation></translation>
</message>
<message>
<source>Jump between elements</source>
<translation></translation>
@ -540,10 +492,6 @@
<source>No coarsening</source>
<translation></translation>
</message>
<message>
<source>Field Interpolation</source>
<translation></translation>
</message>
<message>
<source>Chosen</source>
<translation></translation>

View File

@ -68,8 +68,7 @@ const int MARGIN = 9; // layout margin
*/
//================================================================================
SMESHGUI_HomardAdaptDlg::SMESHGUI_HomardAdaptDlg(SMESHHOMARD::HOMARD_Gen_ptr myHomardGen0)
: QDialog(SMESHGUI::desktop()),
myWorkingDir("")
: QDialog(SMESHGUI::desktop())
{
MESSAGE("Debut du constructeur de SMESHGUI_HomardAdaptDlg");
myHomardGen = SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen0);
@ -105,20 +104,18 @@ SMESHGUI_HomardAdaptDlg::SMESHGUI_HomardAdaptDlg(SMESHHOMARD::HOMARD_Gen_ptr myH
myAdvOpt->removeLogOnSuccessCheck->setChecked(false);
// Working directory
myWorkingDir = QDir::tempPath();
QString aWorkingDir = QDir::tempPath();
char *aTmp_dir = getenv("SALOME_TMP_DIR");
if (aTmp_dir != NULL) {
QDir aTmpDir (aTmp_dir);
if (aTmpDir.exists()) {
myWorkingDir = aTmpDir.absolutePath();
aWorkingDir = aTmpDir.absolutePath();
}
}
myAdvOpt->workingDirectoryLineEdit->setText(myWorkingDir);
QFileInfo anOutMedFile (QDir(myWorkingDir), "Uniform_01_R.med");
myAdvOpt->workingDirectoryLineEdit->setText(aWorkingDir);
// Out med file and/or mesh publication
myArgs->myOutMedFileChk->setChecked(true);
myArgs->mySelectOutMedFileLineEdit->setText(anOutMedFile.absoluteFilePath());
myArgs->myOutPublishChk->setChecked(true);
// buttons
@ -229,6 +226,8 @@ void SMESHGUI_HomardAdaptDlg::InitConnect()
void SMESHGUI_HomardAdaptDlg::InitBoundarys()
{
MESSAGE("InitBoundarys");
//myArgs->TWBoundary->clearContents();
//myArgs->TWBoundary->clear();
// Pour les frontieres analytiques : la colonne des groupes
SMESHHOMARD::ListGroupType_var _listeGroupesCas = myCase->GetGroups();
QTableWidgetItem *__colItem = new QTableWidgetItem();
@ -262,10 +261,9 @@ void SMESHGUI_HomardAdaptDlg::InitBoundarys()
// function : CheckCase
// purpose :
//=================================================================================
bool SMESHGUI_HomardAdaptDlg::CheckCase()
bool SMESHGUI_HomardAdaptDlg::CheckCase(bool fixCase)
{
MESSAGE("CheckCase");
QString aCaseName = "Case_1";
QString aWorkingDir = myAdvOpt->workingDirectoryLineEdit->text().trimmed();
if (aWorkingDir == QString("")) {
@ -273,14 +271,6 @@ bool SMESHGUI_HomardAdaptDlg::CheckCase()
QObject::tr("HOM_CASE_DIRECTORY_1") );
return false;
}
if (aWorkingDir != myWorkingDir) {
QString CaseNameDir = myHomardGen->VerifieDir( aWorkingDir.toStdString().c_str());
if ( ( CaseNameDir != "" ) & ( CaseNameDir != aCaseName ) ) {
QString texte = QObject::tr("HOM_CASE_DIRECTORY_2") + CaseNameDir;
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), texte );
return false;
}
}
if (CHDIR(aWorkingDir.toStdString().c_str()) != 0) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
@ -288,40 +278,42 @@ bool SMESHGUI_HomardAdaptDlg::CheckCase()
return false;
}
QString aFileName = myArgs->mySelectInMedFileLineEdit->text().trimmed();
if (aFileName == QString("")) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_CASE_MESH") );
return false;
}
QString aMeshName, aFileName;
if (myArgs->myInMedFileRadio->isChecked()) {
aFileName = myArgs->mySelectInMedFileLineEdit->text().trimmed();
if (aFileName == QString("")) {
QMessageBox::critical(0, QObject::tr("HOM_ERROR"), QObject::tr("HOM_CASE_MESH"));
return false;
}
// In mesh name
QString aMeshName = SMESH_HOMARD_QT_COMMUN::LireNomMaillage(aFileName);
if (aMeshName == "" ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_MED_FILE_2") );
return false;
// In mesh name
aMeshName = SMESH_HOMARD_QT_COMMUN::LireNomMaillage(aFileName);
if (aMeshName == "") {
QMessageBox::critical(0, QObject::tr("HOM_ERROR"), QObject::tr("HOM_MED_FILE_2"));
return false;
}
}
// Out mesh name (initialize, if not yet)
if (myArgs->myOutMeshNameLineEdit->text().isEmpty()) {
myArgs->myOutMeshNameLineEdit->setText(aMeshName);
else {
aMeshName = myArgs->myInBrowserObject->text();
if (aMeshName == "" || myMesh->_is_nil()) {
QMessageBox::critical(0, QObject::tr("HOM_ERROR"),
QObject::tr("Mesh object is not selected"));
return false;
}
}
// On verifie qu'un groupe n'est pas associe a deux frontieres differentes
if (myArgs->CBBoundaryA->isChecked()) {
QStringList ListeGroup ;
QString NomGroup ;
QStringList ListeGroup;
QString NomGroup;
int nbcol = myArgs->TWBoundary->columnCount();
int nbrow = myArgs->TWBoundary->rowCount();
for ( int col=1; col< nbcol; col++) {
for ( int row=0; row< nbrow; row++) {
if ( myArgs->TWBoundary->item( row, col )->checkState() == Qt::Checked ) {
// Nom du groupe
// Group name
NomGroup = QString(myArgs->TWBoundary->item(row, 0)->text()) ;
//MESSAGE("NomGroup "<<NomGroup.toStdString().c_str());
for ( int nugr = 0 ; nugr<ListeGroup.size(); nugr++) {
//MESSAGE("....... "<<ListeGroup[nugr].toStdString().c_str());
for ( int nugr = 0 ; nugr < ListeGroup.size(); nugr++) {
if ( NomGroup == ListeGroup[nugr] ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_CASE_GROUP").arg(NomGroup) );
@ -334,29 +326,44 @@ bool SMESHGUI_HomardAdaptDlg::CheckCase()
}
}
if (!fixCase) return true;
// Creation du cas
if (myCase->_is_nil()) {
try {
myCase = myHomardGen->CreateCase
(CORBA::string_dup(aCaseName.toStdString().c_str()),
CORBA::string_dup(aMeshName.toStdString().c_str()),
CORBA::string_dup(aFileName.toStdString().c_str()));
if (myArgs->myInMedFileRadio->isChecked()) {
// create case from MED file
myCase = myHomardGen->CreateCase
(CORBA::string_dup(aMeshName.toStdString().c_str()),
CORBA::string_dup(aFileName.toStdString().c_str()),
aWorkingDir.toStdString().c_str());
}
else {
// create case from SMESH_Mesh
myCase = myHomardGen->CreateCaseOnMesh
(CORBA::string_dup(aMeshName.toStdString().c_str()),
myMesh,
aWorkingDir.toStdString().c_str());
}
}
catch( SALOME::SALOME_Exception& S_ex ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr(CORBA::string_dup(S_ex.details.text)) );
return false;
}
//myArgs->mySelectInMedFileLineEdit->setReadOnly(true);
//myArgs->mySelectInMedFileButton->hide();
// Prevent changing case data
myArgs->myInMedFileRadio->setEnabled(false);
myArgs->myInBrowserRadio->setEnabled(false);
myArgs->mySelectInMedFileLineEdit->setReadOnly(true);
myArgs->mySelectInMedFileButton->setEnabled(false);
myArgs->myInBrowserObject->setReadOnly(true);
myAdvOpt->workingDirectoryLineEdit->setReadOnly(true);
myAdvOpt->workingDirectoryPushButton->setEnabled(false);
InitBoundarys();
}
// Repertoire et type
myCase->SetDirName(aWorkingDir.toStdString().c_str());
myWorkingDir = aWorkingDir;
myCase->SetConfType(myArgs->RBConforme->isChecked() ? 0 : 1);
//myCase->SetExtType(0); // ExtType
// Menage des eventuelles frontieres deja enregistrees
myCase->SupprBoundaryGroup();
@ -373,10 +380,10 @@ bool SMESHGUI_HomardAdaptDlg::PushOnApply()
MESSAGE("PushOnApply");
// Check data, create Case if not yet
if (!CheckCase())
if (!CheckCase(true))
return false;
MESSAGE("PushOnApply: *** aaajfa *** 11");
MESSAGE("PushOnApply: *** aaajfa *** 12");
// Create boundaries
if (myArgs->RBBoundaryCAO->isChecked()) {
@ -395,65 +402,35 @@ bool SMESHGUI_HomardAdaptDlg::PushOnApply()
QString NomGroup;
int nbcol = myArgs->TWBoundary->columnCount();
int nbrow = myArgs->TWBoundary->rowCount();
for ( int col=1; col< nbcol; col++) {
for ( int row=0; row< nbrow; row++) {
for ( int col = 1; col < nbcol; col++) {
for ( int row = 0; row < nbrow; row++) {
if ( myArgs->TWBoundary->item( row, col )->checkState() == Qt::Checked ) {
// Nom du groupe
NomGroup = QString(myArgs->TWBoundary->item(row, 0)->text()) ;
// Nom de la frontiere
QTableWidgetItem *__colItem = new QTableWidgetItem();
__colItem = myArgs->TWBoundary->horizontalHeaderItem(col);
QTableWidgetItem *__colItem = myArgs->TWBoundary->horizontalHeaderItem(col);
myCase->AddBoundaryGroup(QString(__colItem->text()).toStdString().c_str(),
NomGroup.toStdString().c_str());
NomGroup.toStdString().c_str());
}
}
}
}
MESSAGE("PushOnApply: *** aaajfa *** 12");
// create hypothesis
if (myHypothesis->_is_nil()) {
try {
myHypothesis = myHomardGen->CreateHypothesis("Hypo_1");
myHypothesis->SetUnifRefinUnRef(1);
}
catch( SALOME::SALOME_Exception& S_ex ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QString(CORBA::string_dup(S_ex.details.text)) );
//if (!myHypothesis->_is_nil()) {
// myHypothesis->Delete();
// myHypothesis = SMESHHOMARD::HOMARD_Hypothesis::_nil();
//}
return false;
}
}
MESSAGE("PushOnApply: *** aaajfa *** 13");
// create iteration
if (myIteration->_is_nil()) {
try {
myIteration = myCase->NextIteration("Iter_1");
myIteration->AssociateHypo("Hypo_1");
}
catch( SALOME::SALOME_Exception& S_ex ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QString(CORBA::string_dup(S_ex.details.text)) );
return false;
}
}
// Verbose level?
myIteration->SetInfoCompute(myAdvOpt->verboseLevelSpin->value());
// Output mesh name
myIteration->SetMeshName(myArgs->myOutMeshNameLineEdit->text().toStdString().c_str());
// Output med file
// Output MED and MESH parameters
myHomardGen->SetKeepMedOUT(myArgs->myOutMedFileChk->isChecked());
myHomardGen->SetPublishMeshOUT(myArgs->myOutPublishChk->isChecked());
QString anOutMeshName = myArgs->myOutMeshNameLineEdit->text();
if (anOutMeshName.isEmpty()) anOutMeshName = "DEFAULT_MESH_NAME";
myHomardGen->SetMeshNameOUT(anOutMeshName.toStdString().c_str());
std::string aMeshFileOUT;
if (myArgs->myOutMedFileChk->isChecked()) {
QString anOutMed = myArgs->mySelectOutMedFileLineEdit->text();
if (anOutMed.isEmpty()) {
// store in working directory and with default name
QString aMedFileIn = myArgs->mySelectInMedFileLineEdit->text().trimmed();
QFileInfo aFileInfoIn (aMedFileIn);
aMedFileIn = aFileInfoIn.completeBaseName(); // name without path and last extension
QFileInfo aFileInfo (QDir(myWorkingDir), aMedFileIn + "_Uniform_01_R.med");
QString aWorkingDir = myAdvOpt->workingDirectoryLineEdit->text().trimmed();
QFileInfo aFileInfo (QDir(aWorkingDir), "Uniform_01_R.med");
anOutMed = aFileInfo.absoluteFilePath();
// show it
myArgs->mySelectOutMedFileLineEdit->setText(anOutMed);
@ -462,34 +439,48 @@ bool SMESHGUI_HomardAdaptDlg::PushOnApply()
QFileInfo aFileInfo (anOutMed);
anOutMed = aFileInfo.absoluteFilePath();
}
myIteration->SetMeshFile(anOutMed.toStdString().c_str());
aMeshFileOUT = anOutMed.toStdString();
}
else {
// Set file name without path for it to be created in current directory
// (it will be iteration's dir, and it will be destroyed after)
aMeshFileOUT = "Uniform_01_R.med";
}
myHomardGen->SetMeshFileOUT(aMeshFileOUT.c_str());
// Advanced options
myHomardGen->SetVerboseLevel(myAdvOpt->verboseLevelSpin->value());
myHomardGen->SetKeepWorkingFiles(myAdvOpt->keepWorkingFilesCheck->isChecked());
myHomardGen->SetLogInFile(myAdvOpt->logInFileCheck->isChecked());
myHomardGen->SetRemoveLogOnSuccess(myAdvOpt->removeLogOnSuccessCheck->isChecked());
// Log file
if (myAdvOpt->logInFileCheck->isChecked()) {
// Write log file in the working dir
// Name of log file will be "<base_name_of_input_med>_Uniform_01_R.med.log"
QString aMedFileIn = myArgs->mySelectInMedFileLineEdit->text().trimmed();
QFileInfo aFileInfoIn (aMedFileIn);
aMedFileIn = aFileInfoIn.completeBaseName(); // name without path and last extension
QFileInfo aFileInfo (QDir(myWorkingDir), aMedFileIn + "_Uniform_01_R.med.log");
QString aLogBaseName;
if (myArgs->myInMedFileRadio->isChecked()) {
// Name of log file will be "<name_of_input_med_file>_Uniform_R.log"
QString aMedFileIn = myArgs->mySelectInMedFileLineEdit->text().trimmed();
QFileInfo aFileInfoIn (aMedFileIn);
aLogBaseName = aFileInfoIn.fileName();
}
else {
// Name of log file will be "SMESH_Mesh_<name_of_input_mesh>_Uniform_R.log"
aLogBaseName = "SMESH_Mesh_";
aLogBaseName += myArgs->myInBrowserObject->text();
}
QString aWorkingDir = myAdvOpt->workingDirectoryLineEdit->text().trimmed();
QFileInfo aFileInfo (QDir(aWorkingDir), aLogBaseName + "_Uniform_R.log");
QString anOutLog = aFileInfo.absoluteFilePath();
MESSAGE("myIteration->SetLogFile(" << anOutLog.toStdString().c_str() << ")");
myIteration->SetLogFile(anOutLog.toStdString().c_str());
MESSAGE("myIteration->GetLogFile() = " << myIteration->GetLogFile());
MESSAGE("myHomardGen->SetLogFile(" << anOutLog.toStdString().c_str() << ")");
myHomardGen->SetLogFile(anOutLog.toStdString().c_str());
}
MESSAGE("PushOnApply: *** aaajfa *** 14");
// compute and publish
// Compute and publish
bool isSuccess = true;
try {
int aCleanOption = 0; // report an error if output mesh file exists
int aModeHOMARD = 1; // adaptation
int anOption1 = -1; // appel depuis GUI
int anOption2 = 1; // do not publish to SMESH
if (myArgs->myOutPublishChk->isChecked())
anOption2 = 2; // publish to SMESH
isSuccess = myHomardGen->Compute("Iter_1", aCleanOption, aModeHOMARD,
anOption1, anOption2) == 0;
isSuccess = myHomardGen->Compute() == 0;
}
catch( SALOME::SALOME_Exception& S_ex ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
@ -497,38 +488,26 @@ bool SMESHGUI_HomardAdaptDlg::PushOnApply()
isSuccess = false;
}
MESSAGE("PushOnApply: *** aaajfa *** 15");
// case 1131: // Publication du maillage de l'iteration
// homardGen->PublishMeshIterInSmesh(_ObjectName.toStdString().c_str());
// case 1132: // Publication du maillage de l'iteration a partir du fichier
// homardGen->PublishResultInSmesh(_ObjectName.toStdString().c_str(), 1);
if (isSuccess)
// Update Object Browser
if (isSuccess) {
SMESHGUI::GetSMESHGUI()->updateObjBrowser();
// Remove log file and delete iteration object
MESSAGE("myIteration->GetLogFile() = " << myIteration->GetLogFile());
if (isSuccess &&
myAdvOpt->logInFileCheck->isChecked() &&
myAdvOpt->removeLogOnSuccessCheck->isChecked()) {
// Remove log file on success
QFile(myIteration->GetLogFile()).remove();
// Clean case, as it is deleted after successful Compute
myCase = SMESHHOMARD::HOMARD_Cas::_nil();
}
MESSAGE("PushOnApply: *** aaajfa *** 16");
// Delete iteration object
// This also removes all working files, if keepWorkingFilesCheck is not checked
myIteration->Delete(0, !myAdvOpt->keepWorkingFilesCheck->isChecked());
// Enable new case data selection
myArgs->myInMedFileRadio->setEnabled(true);
myArgs->myInBrowserRadio->setEnabled(true);
myArgs->mySelectInMedFileLineEdit->setReadOnly(false);
//myArgs->mySelectInMedFileButton->hide();
myArgs->mySelectInMedFileButton->setEnabled(true);
myArgs->myInBrowserObject->setReadOnly(false);
myAdvOpt->workingDirectoryLineEdit->setReadOnly(false);
myAdvOpt->workingDirectoryPushButton->setEnabled(true);
// Delete hypothesis and case
if (!myHypothesis->_is_nil()) myHypothesis->Delete();
if (!myCase->_is_nil()) myCase->Delete(1);
MESSAGE("PushOnApply: *** aaajfa *** 17");
myIteration = SMESHHOMARD::HOMARD_Iteration::_nil();
myHypothesis = SMESHHOMARD::HOMARD_Hypothesis::_nil();
myCase = SMESHHOMARD::HOMARD_Cas::_nil();
MESSAGE("PushOnApply: *** aaajfa *** THE END");
return isSuccess;
}
@ -551,65 +530,66 @@ void SMESHGUI_HomardAdaptDlg::PushOnHelp()
void SMESHGUI_HomardAdaptDlg::updateSelection()
{
LightApp_SelectionMgr *selMgr = SMESHGUI::selectionMgr();
disconnect( selMgr, 0, this, 0 );
disconnect(selMgr, 0, this, 0);
selMgr->clearFilters();
SMESH::SetPointRepresentation( false );
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow() )
aViewWindow->SetSelectionMode( ActorSelection );
if (myArgs->myInBrowserRadio->isChecked())
{
connect( selMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( selectionChanged() ));
if (!myArgs->myInBrowserRadio->isChecked())
return;
SMESH::SetPointRepresentation(false);
if (SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow())
aViewWindow->SetSelectionMode(ActorSelection);
if (myArgs->myInBrowserRadio->isChecked()) {
connect(selMgr, SIGNAL(currentSelectionChanged()), this, SLOT(selectionChanged()));
selectionChanged();
}
}
void SMESHGUI_HomardAdaptDlg::selectionChanged()
{
if (!myArgs->myInBrowserRadio->isChecked())
return;
LightApp_SelectionMgr *selMgr = SMESHGUI::selectionMgr();
//~ get selected mesh
// get selected mesh
SALOME_ListIO aList;
selMgr->selectedObjects(aList);
QString aString = "";
int nbSel = aList.Extent();
if (nbSel != 1)
return;
QString aMeshName = "";
Handle(SALOME_InteractiveObject) IO = aList.First();
SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO(IO);
if ( !mesh->_is_nil() )
{
myMesh = mesh;
SMESH::SMESH_IDSource_var sSelectedObj = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
if ( sSelectedObj->_is_nil() )
return;
if (aList.Extent() == 1) {
Handle(SALOME_InteractiveObject) IO = aList.First();
myMesh = SMESH::GetMeshByIO(IO);
SMESH::GetNameOfSelectedIObjects(selMgr, aMeshName);
if (aMeshName.isEmpty()) aMeshName = " ";
else aMeshName = aMeshName.trimmed();
}
else
return;
SMESH::GetNameOfSelectedIObjects( selMgr, aString );
if ( aString.isEmpty() ) aString = " ";
else aString = aString.trimmed();
//bool ok = !aString.isEmpty();
if ( !mesh->_is_nil() )
{
myArgs->myInBrowserObject->setText( aString );
myArgs->myOutMeshNameLineEdit->setText( aString );
myArgs->mySelectOutMedFileLineEdit->setText(aString + QString("_Uniform_01_R.med"));
else {
myMesh = SMESH::SMESH_Mesh::_nil();
}
}
void SMESHGUI_HomardAdaptDlg::setMyMesh(SMESH::SMESH_Mesh_var mesh)
{
myMesh = mesh;
}
myArgs->myInBrowserObject->setText(aMeshName);
SMESH::SMESH_Mesh_var SMESHGUI_HomardAdaptDlg::getMyMesh()
{
return myMesh;
// Out mesh name default value
// TODO: add some suffix? "_R" or "_UnifRefin", or "_Uniform_01_R"
myArgs->myOutMeshNameLineEdit->setText(aMeshName);
// Output med file default value
// Construct it from Input mesh name and working directory
//if (myArgs->myOutMedFileChk->isChecked()) {
if (aMeshName.isEmpty()) {
myArgs->mySelectOutMedFileLineEdit->setText("");
}
else {
QString aWorkingDir = myAdvOpt->workingDirectoryLineEdit->text().trimmed();
QFileInfo aFileInfo (QDir(aWorkingDir), aMeshName + QString("_Uniform_01_R.med"));
for (int ii = 1; aFileInfo.exists(); ii++) {
QString anUniqueName = QString("%1_Uniform_01_R_%2.med").arg(aMeshName).arg(ii);
aFileInfo.setFile(QDir(aWorkingDir), anUniqueName);
}
myArgs->mySelectOutMedFileLineEdit->setText(aFileInfo.absoluteFilePath());
}
//}
}
void SMESHGUI_HomardAdaptDlg::SetFileName()
@ -621,22 +601,33 @@ void SMESHGUI_HomardAdaptDlg::SetFileName()
fileName = fileName0;
if (fileName.isEmpty()) return;
}
QFileInfo aFileInfo (fileName);
fileName = aFileInfo.absoluteFilePath();
QFileInfo aFileInInfo (fileName);
fileName = aFileInInfo.absoluteFilePath();
myArgs->mySelectInMedFileLineEdit->setText(fileName);
// Out mesh name default value
// TODO: add some suffix? "_R" or "_UnifRefin", or "_Uniform_01_R"
QString aMeshName = SMESH_HOMARD_QT_COMMUN::LireNomMaillage(fileName);
myArgs->myOutMeshNameLineEdit->setText(aMeshName);
// Output med file default value
if (myArgs->myOutMedFileChk->isChecked()) {
std::string fname = fileName.toStdString();
size_t lastdot = fname.find_last_of(".");
if (lastdot != std::string::npos)
fname = fname.substr(0, lastdot);
QString outF = QString(fname.c_str()) + QString("_Uniform_01_R.med");
myArgs->mySelectOutMedFileLineEdit->setText(outF);
// Construct it from Input med file name and path
//if (myArgs->myOutMedFileChk->isChecked()) {
std::string fname = fileName.toStdString();
size_t lastdot = fname.find_last_of(".");
if (lastdot != std::string::npos)
fname = fname.substr(0, lastdot);
QString fileNameOut = fname.c_str();
QFileInfo aFileInfo (fileNameOut + QString("_Uniform_01_R.med"));
for (int ii = 1; aFileInfo.exists(); ii++) {
QString anUniqueName = QString("%1_Uniform_01_R_%2.med").arg(fileNameOut).arg(ii);
aFileInfo.setFile(anUniqueName);
}
myArgs->mySelectOutMedFileLineEdit->setText(aFileInfo.absoluteFilePath());
//}
// Check data
CheckCase();
CheckCase(false);
}
// ------------------------------------------------------------------------
@ -698,7 +689,7 @@ void SMESHGUI_HomardAdaptDlg::SetBoundaryD()
{
MESSAGE("Debut de SetBoundaryD ");
if (myArgs->CBBoundaryD->isChecked()) {
bool bOK = CheckCase();
bool bOK = CheckCase(true);
if (bOK) {
myArgs->GBBoundaryD->setVisible(1);
}
@ -712,8 +703,8 @@ void SMESHGUI_HomardAdaptDlg::SetBoundaryD()
myArgs->GBBoundaryD->setVisible(0);
}
myArgs->mySelectInMedFileLineEdit->setReadOnly(true);
myArgs->mySelectInMedFileButton->hide();
//myArgs->mySelectInMedFileLineEdit->setReadOnly(true);
//myArgs->mySelectInMedFileButton->hide();
adjustSize();
}
@ -756,7 +747,7 @@ void SMESHGUI_HomardAdaptDlg::SetBoundaryA()
{
MESSAGE("Debut de SetBoundaryA ");
if (myArgs->CBBoundaryA->isChecked()) {
bool bOK = CheckCase();
bool bOK = CheckCase(true);
if (bOK) {
myArgs->GBBoundaryA->setVisible(1);
}
@ -770,8 +761,8 @@ void SMESHGUI_HomardAdaptDlg::SetBoundaryA()
myArgs->GBBoundaryA->setVisible(0);
}
myArgs->mySelectInMedFileLineEdit->setReadOnly(true);
myArgs->mySelectInMedFileButton->hide();
//myArgs->mySelectInMedFileLineEdit->setReadOnly(true);
//myArgs->mySelectInMedFileButton->hide();
adjustSize();
}
@ -858,7 +849,7 @@ void SMESHGUI_HomardAdaptArguments::setupUi(QWidget *CreateCase)
QGroupBox* aMeshIn = new QGroupBox( tr( "MeshIn" ), this );
myInMedFileRadio = new QRadioButton( tr( "MEDFile" ), aMeshIn );
myInBrowserRadio = new QRadioButton( tr( "Browser" ), aMeshIn );
myInBrowserObject = new QLineEdit( aMeshIn );
myInBrowserObject = new QLineEdit( aMeshIn );
mySelectInMedFileButton = new QPushButton("...", aMeshIn);
mySelectInMedFileLineEdit = new QLineEdit( aMeshIn );
@ -952,11 +943,11 @@ void SMESHGUI_HomardAdaptArguments::setupUi(QWidget *CreateCase)
CBBoundaryD = new QCheckBox(tr("BOUNDARY_DISCRETE"), GBBoundaryN);
CBBoundaryA = new QCheckBox(tr("BOUNDARY_ANALYTICAL"), GBBoundaryN);
hboxLayout3 = new QHBoxLayout(GBBoundaryN);
hboxLayout3->setSpacing(6);
hboxLayout3->setContentsMargins(0, 0, 0, 0);
hboxLayout3->addWidget(CBBoundaryD);
hboxLayout3->addWidget(CBBoundaryA);
//hboxLayout3 = new QHBoxLayout(GBBoundaryN);
//hboxLayout3->setSpacing(6);
//hboxLayout3->setContentsMargins(0, 0, 0, 0);
//hboxLayout3->addWidget(CBBoundaryD);
//hboxLayout3->addWidget(CBBoundaryA);
// discrete
GBBoundaryD = new QGroupBox(tr("Discrete boundary"), GBBoundaryN);
@ -1034,6 +1025,14 @@ void SMESHGUI_HomardAdaptArguments::setupUi(QWidget *CreateCase)
formLayout->setLayout(0, QFormLayout::FieldRole, gridLayout1);
// Boundary No Layout
QGridLayout* aBoundaryNoLayout = new QGridLayout(GBBoundaryN);
//aBoundaryNoLayout->addLayout(hboxLayout3, 0, 0);
aBoundaryNoLayout->addWidget(CBBoundaryD, 0, 0);
aBoundaryNoLayout->addWidget(CBBoundaryA, 0, 1);
aBoundaryNoLayout->addWidget(GBBoundaryD, 1, 0, 1, 2);
aBoundaryNoLayout->addWidget(GBBoundaryA, 2, 0, 1, 2);
// Boundary type Layout
QGridLayout* aBoundTypeLayout = new QGridLayout(GBTypeBoun);
aBoundTypeLayout->addWidget(RBBoundaryNo, 0, 0);

View File

@ -64,9 +64,6 @@ class SMESHGUI_EXPORT SMESHGUI_HomardAdaptDlg : public QDialog
SMESHGUI_HomardAdaptDlg(SMESHHOMARD::HOMARD_Gen_ptr theHomardGen);
~SMESHGUI_HomardAdaptDlg();
void setMyMesh(SMESH::SMESH_Mesh_var);
SMESH::SMESH_Mesh_var getMyMesh();
void AddBoundaryCAO(QString newBoundary);
void AddBoundaryAn(QString newBoundary);
void AddBoundaryDi(QString newBoundary);
@ -75,8 +72,6 @@ class SMESHGUI_EXPORT SMESHGUI_HomardAdaptDlg : public QDialog
QString myWorkingDir;
SMESHHOMARD::HOMARD_Cas_var myCase;
SMESHHOMARD::HOMARD_Hypothesis_var myHypothesis;
SMESHHOMARD::HOMARD_Iteration_var myIteration;
SALOME::GenericObj_wrap< SMESHHOMARD::HOMARD_Gen > myHomardGen;
virtual void InitConnect();
@ -103,7 +98,7 @@ class SMESHGUI_EXPORT SMESHGUI_HomardAdaptDlg : public QDialog
virtual void PushBoundaryAnEdit();
virtual void PushBoundaryAnHelp();
bool CheckCase();
bool CheckCase(bool fixCase);
virtual void PushOnOK();
virtual bool PushOnApply();

View File

@ -53,7 +53,6 @@ SMESH_CreateBoundaryAn::SMESH_CreateBoundaryAn(SMESHGUI_HomardAdaptDlg* parent,
QDialog(0), SMESH_Ui_CreateBoundaryAn(),
_parent(parent),
_Name (""),
_aCaseName(caseName),
_Type(1),
_BoundaryAnXcentre(0), _BoundaryAnYcentre(0), _BoundaryAnZcentre(0), _BoundaryAnRayon(0),
_BoundaryAnXaxis(0), _BoundaryAnYaxis(0), _BoundaryAnZaxis(0),
@ -112,7 +111,6 @@ SMESH_CreateBoundaryAn::SMESH_CreateBoundaryAn(SMESHGUI_HomardAdaptDlg* parent,
QDialog(0), SMESH_Ui_CreateBoundaryAn(),
_parent(parent),
_Name (""),
_aCaseName(caseName),
_Type(1),
_BoundaryAnXcentre(0), _BoundaryAnYcentre(0), _BoundaryAnZcentre(0), _BoundaryAnRayon(0),
_BoundaryAnXaxis(0), _BoundaryAnYaxis(0), _BoundaryAnZaxis(0),
@ -169,12 +167,10 @@ void SMESH_CreateBoundaryAn::InitConnect()
void SMESH_CreateBoundaryAn::InitValBoundaryAn()
// ------------------------------------------------------------------------
{
//
// 1. Les coordonnees extremes du maillage
//
if (_aCaseName == QString("")) { return; }
SMESHHOMARD::HOMARD_Cas_var aCas = myHomardGen->GetCase(_aCaseName.toStdString().c_str());
//
// 1. Les coordonnees extremes du maillage
//
SMESHHOMARD::HOMARD_Cas_var aCas = myHomardGen->GetCase();
SMESHHOMARD::extrema_var MesExtremes = aCas->GetBoundingBox();
int num = MesExtremes->length() ;
ASSERT(num == 10);
@ -818,8 +814,7 @@ SMESH_CreateBoundaryCAO::SMESH_CreateBoundaryCAO(SMESHGUI_HomardAdaptDlg* parent
:
QDialog(0), SMESH_Ui_CreateBoundaryCAO(),
_parent(parent), _aName(aName),
myHomardGen(SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen0)),
_aCaseName(caseName)
myHomardGen(SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen0))
{
MESSAGE("Constructeur") ;
setupUi(this);
@ -879,7 +874,7 @@ bool SMESH_CreateBoundaryCAO::PushOnApply()
_aName=aName;
aBoundary=myHomardGen->CreateBoundaryCAO(CORBA::string_dup(_aName.toStdString().c_str()), aCAOFile.toStdString().c_str());
_parent->AddBoundaryCAO(_aName);
aBoundary->SetCaseCreation(_aCaseName.toStdString().c_str());
aBoundary->SetCaseCreation("Case_1");
}
catch( SALOME::SALOME_Exception& S_ex )
{
@ -968,14 +963,10 @@ void SMESH_CreateBoundaryCAO::SetFiltrage()
// // ------------------------------------------------------------------------
{
if (!CBGroupe->isChecked()) return;
if (_aCaseName.toStdString().c_str() == QString()) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_BOUN_CASE") );
return;
}
SMESH_CreateListGroupCAO *aDlg = new SMESH_CreateListGroupCAO(this, true, SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen),
_aCaseName, _listeGroupesBoundary) ;
SMESH_CreateListGroupCAO *aDlg = new SMESH_CreateListGroupCAO
(this, true, SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen),
"Case_1", _listeGroupesBoundary);
aDlg->show();
}
@ -988,8 +979,7 @@ SMESH_CreateBoundaryDi::SMESH_CreateBoundaryDi(SMESHGUI_HomardAdaptDlg* parent,
:
QDialog(0), SMESH_Ui_CreateBoundaryDi(),
_parent(parent), _aName(aName),
myHomardGen(SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen0)),
_aCaseName(caseName)
myHomardGen(SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen0))
{
MESSAGE("Constructeur") ;
setupUi(this);
@ -1058,7 +1048,7 @@ bool SMESH_CreateBoundaryDi::PushOnApply()
_aName=aName;
aBoundary=myHomardGen->CreateBoundaryDi(CORBA::string_dup(_aName.toStdString().c_str()), aMeshName.toStdString().c_str(), aMeshFile.toStdString().c_str());
_parent->AddBoundaryDi(_aName);
aBoundary->SetCaseCreation(_aCaseName.toStdString().c_str());
aBoundary->SetCaseCreation("Case_1");
}
catch( SALOME::SALOME_Exception& S_ex )
{
@ -1147,15 +1137,10 @@ void SMESH_CreateBoundaryDi::SetFiltrage()
// // ------------------------------------------------------------------------
{
if (!CBGroupe->isChecked()) return;
if (_aCaseName.toStdString().c_str() == QString()) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_BOUN_CASE") );
return;
}
SMESH_CreateListGroup *aDlg = new SMESH_CreateListGroup
(this, true, SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen),
_aCaseName, _listeGroupesBoundary);
"Case_1", _listeGroupesBoundary);
aDlg->show();
}
@ -1190,7 +1175,7 @@ void SMESH_EditBoundaryAn::InitValEdit()
_Type = aBoundaryAn->GetType();
MESSAGE("_Type : "<<_Type);
InitValBoundaryAnLimit();
if (_aCaseName != QString("")) InitValBoundaryAn();
InitValBoundaryAn();
switch (_Type)
{
case 1 : // il s agit d un cylindre
@ -1543,14 +1528,11 @@ SMESH_EditBoundaryCAO::SMESH_EditBoundaryCAO( SMESHGUI_HomardAdaptDlg* parent, b
{
MESSAGE("Debut de Boundary pour " << Name.toStdString().c_str());
setWindowTitle(QObject::tr("HOM_BOUN_C_EDIT_WINDOW_TITLE"));
try
{
aBoundary=myHomardGen->GetBoundary(CORBA::string_dup(_aName.toStdString().c_str()));
if (caseName==QString("")) { _aCaseName=aBoundary->GetCaseCreation();}
InitValEdit();
try {
aBoundary = myHomardGen->GetBoundary(CORBA::string_dup(_aName.toStdString().c_str()));
InitValEdit();
}
catch( SALOME::SALOME_Exception& S_ex )
{
catch( SALOME::SALOME_Exception& S_ex ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr(CORBA::string_dup(S_ex.details.text)) );
return;
@ -1591,18 +1573,12 @@ void SMESH_EditBoundaryCAO::SetFiltrage()
// // ------------------------------------------------------------------------
{
if (!CBGroupe->isChecked()) return;
if (_aCaseName.toStdString().c_str() == QString())
{
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_BOUN_CASE") );
return;
}
SMESHHOMARD::HOMARD_Cas_var monCas= myHomardGen->GetCase(_aCaseName.toStdString().c_str());
SMESHHOMARD::HOMARD_Cas_var monCas = myHomardGen->GetCase();
SMESHHOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
SMESH_EditListGroupCAO *aDlg = new SMESH_EditListGroupCAO
(this, true, SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen),
_aCaseName, _listeGroupesBoundary) ;
"Case_1", _listeGroupesBoundary) ;
aDlg->show();
}
@ -1618,14 +1594,11 @@ SMESH_EditBoundaryDi::SMESH_EditBoundaryDi( SMESHGUI_HomardAdaptDlg* parent, boo
{
MESSAGE("Debut de Boundary pour " << Name.toStdString().c_str());
setWindowTitle(QObject::tr("HOM_BOUN_D_EDIT_WINDOW_TITLE"));
try
{
aBoundary=myHomardGen->GetBoundary(CORBA::string_dup(_aName.toStdString().c_str()));
if (caseName==QString("")) { _aCaseName=aBoundary->GetCaseCreation();}
InitValEdit();
try {
aBoundary = myHomardGen->GetBoundary(CORBA::string_dup(_aName.toStdString().c_str()));
InitValEdit();
}
catch( SALOME::SALOME_Exception& S_ex )
{
catch( SALOME::SALOME_Exception& S_ex ) {
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr(CORBA::string_dup(S_ex.details.text)) );
return;
@ -1666,17 +1639,11 @@ void SMESH_EditBoundaryDi::SetFiltrage()
// // ------------------------------------------------------------------------
{
if (!CBGroupe->isChecked()) return;
if (_aCaseName.toStdString().c_str() == QString())
{
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_BOUN_CASE") );
return;
}
SMESHHOMARD::HOMARD_Cas_var monCas= myHomardGen->GetCase(_aCaseName.toStdString().c_str());
SMESHHOMARD::HOMARD_Cas_var monCas = myHomardGen->GetCase();
SMESHHOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
SMESH_EditListGroup *aDlg = new SMESH_EditListGroup
(this, true, SMESHHOMARD::HOMARD_Gen::_duplicate(myHomardGen),
_aCaseName, _listeGroupesBoundary);
"Case_1", _listeGroupesBoundary);
aDlg->show();
}

View File

@ -25,7 +25,6 @@
#include <SALOMEconfig.h>
#include <SalomeApp_Module.h>
//#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
#include CORBA_CLIENT_HEADER(SMESH_Homard)
#include <QDialog>
@ -45,8 +44,6 @@
class SMESHGUI_HomardAdaptDlg;
QT_BEGIN_NAMESPACE
class SMESH_Ui_CreateBoundaryAn
{
public:
@ -812,13 +809,8 @@ public:
buttonApply->setText(QApplication::translate("CreateBoundaryAn", "Apply", nullptr));
buttonOk->setText(QApplication::translate("CreateBoundaryAn", "OK", nullptr));
} // retranslateUi
};
namespace Ui {
class CreateBoundaryAn: public SMESH_Ui_CreateBoundaryAn {};
} // namespace Ui
class SMESH_Ui_CreateBoundaryCAO
{
public:
@ -941,13 +933,8 @@ public:
XAO->setText(QApplication::translate("CreateBoundaryCAO", "XAO", nullptr));
Name->setText(QApplication::translate("CreateBoundaryCAO", "Name", nullptr));
} // retranslateUi
};
namespace Ui {
class CreateBoundaryCAO: public SMESH_Ui_CreateBoundaryCAO {};
} // namespace Ui
class SMESH_Ui_CreateBoundaryDi
{
public:
@ -1070,60 +1057,52 @@ public:
Mesh->setText(QApplication::translate("CreateBoundaryDi", "Mesh", nullptr));
Name->setText(QApplication::translate("CreateBoundaryDi", "Name", nullptr));
} // retranslateUi
};
namespace Ui {
class CreateBoundaryDi: public SMESH_Ui_CreateBoundaryDi {};
} // namespace Ui
QT_END_NAMESPACE
class SMESHGUI_EXPORT SMESH_CreateBoundaryAn : public QDialog, public SMESH_Ui_CreateBoundaryAn
{
Q_OBJECT
Q_OBJECT
public:
SMESH_CreateBoundaryAn( SMESHGUI_HomardAdaptDlg* parent, bool modal,
SMESHHOMARD::HOMARD_Gen_var myHomardGen,
QString caseName);
virtual ~SMESH_CreateBoundaryAn();
SMESH_CreateBoundaryAn (SMESHGUI_HomardAdaptDlg* parent, bool modal,
SMESHHOMARD::HOMARD_Gen_var myHomardGen,
QString caseName);
virtual ~SMESH_CreateBoundaryAn();
protected :
SMESH_CreateBoundaryAn( SMESHGUI_HomardAdaptDlg* parent,
SMESHHOMARD::HOMARD_Gen_var myHomardGen,
QString caseName);
SMESH_CreateBoundaryAn (SMESHGUI_HomardAdaptDlg* parent,
SMESHHOMARD::HOMARD_Gen_var myHomardGen,
QString caseName);
SMESHGUI_HomardAdaptDlg * _parent;
SMESHGUI_HomardAdaptDlg * _parent;
QString _Name;
QString _aCaseName;
QString _Name;
int _Type;
double _BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnRayon;
double _BoundaryAnXaxis, _BoundaryAnYaxis, _BoundaryAnZaxis;
double _Xcentre, _Ycentre, _Zcentre, _Rayon ;
double _Xmin, _Xmax, _Xincr, _Ymin, _Ymax, _Yincr, _Zmin, _Zmax, _Zincr, _DMax ;
double _BoundaryAnXcone1, _BoundaryAnYcone1, _BoundaryAnZcone1, _BoundaryAnRayon1;
double _BoundaryAnXcone2, _BoundaryAnYcone2, _BoundaryAnZcone2, _BoundaryAnRayon2;
double _BoundaryAnXaxisCone, _BoundaryAnYaxisCone, _BoundaryAnZaxisCone;
double _BoundaryAnXorigCone, _BoundaryAnYorigCone, _BoundaryAnZorigCone;
double _BoundaryAngle;
double _BoundaryAnToreXcentre, _BoundaryAnToreYcentre, _BoundaryAnToreZcentre;
double _BoundaryAnToreXaxe, _BoundaryAnToreYaxe, _BoundaryAnToreZaxe;
double _BoundaryAnToreRRev, _BoundaryAnToreRPri;
int _Type;
double _BoundaryAnXcentre, _BoundaryAnYcentre, _BoundaryAnZcentre, _BoundaryAnRayon;
double _BoundaryAnXaxis, _BoundaryAnYaxis, _BoundaryAnZaxis;
double _Xcentre, _Ycentre, _Zcentre, _Rayon ;
double _Xmin, _Xmax, _Xincr, _Ymin, _Ymax, _Yincr, _Zmin, _Zmax, _Zincr, _DMax ;
double _BoundaryAnXcone1, _BoundaryAnYcone1, _BoundaryAnZcone1, _BoundaryAnRayon1;
double _BoundaryAnXcone2, _BoundaryAnYcone2, _BoundaryAnZcone2, _BoundaryAnRayon2;
double _BoundaryAnXaxisCone, _BoundaryAnYaxisCone, _BoundaryAnZaxisCone;
double _BoundaryAnXorigCone, _BoundaryAnYorigCone, _BoundaryAnZorigCone;
double _BoundaryAngle;
double _BoundaryAnToreXcentre, _BoundaryAnToreYcentre, _BoundaryAnToreZcentre;
double _BoundaryAnToreXaxe, _BoundaryAnToreYaxe, _BoundaryAnToreZaxe;
double _BoundaryAnToreRRev, _BoundaryAnToreRPri;
bool Chgt;
bool Chgt;
SMESHHOMARD::HOMARD_Boundary_var aBoundaryAn ;
SMESHHOMARD::HOMARD_Gen_var myHomardGen;
SMESHHOMARD::HOMARD_Boundary_var aBoundaryAn;
SMESHHOMARD::HOMARD_Gen_var myHomardGen;
virtual void InitConnect();
virtual void InitValBoundaryAn();
virtual void InitMinMax();
virtual void SetNewName();
virtual bool CreateOrUpdateBoundaryAn();
virtual void convertRayonAngle(int option);
virtual void InitConnect();
virtual void InitValBoundaryAn();
virtual void InitMinMax();
virtual void SetNewName();
virtual bool CreateOrUpdateBoundaryAn();
virtual void convertRayonAngle(int option);
public slots:
virtual void SetCylinder();
@ -1135,7 +1114,6 @@ public slots:
virtual void PushOnOK();
virtual bool PushOnApply();
virtual void PushOnHelp();
};
class SMESHGUI_EXPORT SMESH_EditBoundaryAn : public SMESH_CreateBoundaryAn
@ -1161,9 +1139,6 @@ protected :
void InitValBoundaryAnConeR();
void InitValBoundaryAnConeA();
void InitValBoundaryAnTore();
public slots:
};
class SMESHGUI_EXPORT SMESH_CreateBoundaryCAO : public QDialog, public SMESH_Ui_CreateBoundaryCAO
@ -1182,8 +1157,6 @@ protected :
SMESHGUI_HomardAdaptDlg *_parent;
QString _aName;
QString _aCaseName;
SMESHHOMARD::HOMARD_Boundary_var aBoundary;
SMESHHOMARD::HOMARD_Gen_var myHomardGen;
@ -1216,9 +1189,6 @@ protected :
virtual void InitValEdit();
virtual bool PushOnApply();
virtual void SetFiltrage();
public slots:
};
class SMESHGUI_EXPORT SMESH_CreateBoundaryDi : public QDialog, public SMESH_Ui_CreateBoundaryDi
@ -1237,8 +1207,6 @@ protected :
SMESHGUI_HomardAdaptDlg *_parent;
QString _aName;
QString _aCaseName;
SMESHHOMARD::HOMARD_Boundary_var aBoundary;
SMESHHOMARD::HOMARD_Gen_var myHomardGen;
@ -1271,9 +1239,6 @@ protected :
virtual void InitValEdit();
virtual bool PushOnApply();
virtual void SetFiltrage();
public slots:
};
#endif // MON_CREATEBOUNDARY_H

View File

@ -123,7 +123,7 @@ void SMESH_CreateListGroupCAO::InitGroupes()
TWGroupe->removeRow(row);
TWGroupe->setRowCount(0);
if (_aCaseName == QString("")) { return; };
SMESHHOMARD::HOMARD_Cas_var monCas= myHomardGen->GetCase(_aCaseName.toStdString().c_str());
SMESHHOMARD::HOMARD_Cas_var monCas = myHomardGen->GetCase();
SMESHHOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
for ( int i = 0; i < _listeGroupesCas->length(); i++ ) {
TWGroupe->insertRow(i);
@ -231,7 +231,7 @@ void SMESH_CreateListGroup::InitGroupes()
TWGroupe->removeRow(row);
TWGroupe->setRowCount(0);
if (_aCaseName == QString("")) { return; };
SMESHHOMARD::HOMARD_Cas_var monCas= myHomardGen->GetCase(_aCaseName.toStdString().c_str());
SMESHHOMARD::HOMARD_Cas_var monCas = myHomardGen->GetCase();
SMESHHOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
for ( int i = 0; i < _listeGroupesCas->length(); i++ )
{

View File

@ -3029,6 +3029,10 @@ Check algorithm documentation for supported geometry</translation>
<source>ADAPT_PREF_NONE</source>
<translation>None</translation>
</message>
<message>
<source>ADAPT_WITH_HOMARD</source>
<translation>Adaptation with HOMARD</translation>
</message>
<message>
<source>ADAPT_PREF_MG_ADAPT</source>
<translation>Adaptation with MG-Adapt</translation>

View File

@ -3011,6 +3011,10 @@ Référez-vous à la documentation sur l'algorithme et la géométrie supportée
<source>ADAPT_PREF_NONE</source>
<translation>Sans</translation>
</message>
<message>
<source>ADAPT_WITH_HOMARD</source>
<translation>Adaptation avec HOMARD</translation>
</message>
<message>
<source>ADAPT_PREF_MG_ADAPT</source>
<translation>Adaptation avec MG-Adapt</translation>

File diff suppressed because it is too large Load Diff

View File

@ -17,16 +17,6 @@
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// Remarques :
// L'ordre de description des fonctions est le meme dans tous les fichiers
// HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
// 1. Les generalites : Name, Delete, DumpPython, Dump, Restore
// 2. Les caracteristiques
// 3. Le lien avec les autres structures
//
// Quand les 2 fonctions Setxxx et Getxxx sont presentes, Setxxx est decrit en premier
//
#ifndef _SMESH_HOMARD_I_HXX_
#define _SMESH_HOMARD_I_HXX_
@ -36,6 +26,7 @@
#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
#include CORBA_CLIENT_HEADER(SMESH_Gen)
#include CORBA_CLIENT_HEADER(SMESH_Mesh)
#include "SMESH.hxx"
#include "SMESH_Homard.hxx"
@ -49,498 +40,312 @@
#include <string>
#include <vector>
//namespace SMESHHOMARDImpl
//{
// class HOMARD_Boundary;
// class HOMARD_Cas;
// class HOMARD_Hypothesis;
// class HOMARD_Iteration;
//};
namespace SMESHHOMARD_I
{
class SMESH_I_EXPORT HOMARD_Boundary_i:
public virtual Engines_Component_i,
public virtual POA_SMESHHOMARD::HOMARD_Boundary,
public virtual PortableServer::ServantBase
class SMESH_I_EXPORT HOMARD_Boundary_i : public virtual SALOME::GenericObj_i,
public virtual POA_SMESHHOMARD::HOMARD_Boundary
{
public:
HOMARD_Boundary_i( CORBA::ORB_ptr orb, SMESHHOMARD::HOMARD_Gen_var gen_i );
HOMARD_Boundary_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
HOMARD_Boundary_i();
virtual ~HOMARD_Boundary_i();
// Generalites
void SetName( const char* Name );
void SetName(const char* Name);
char* GetName();
CORBA::Long Delete();
char* GetDumpPython();
std::string Dump() const;
bool Restore( const std::string& stream );
// Caracteristiques
void SetType( CORBA::Long Type );
void SetType(CORBA::Long Type);
CORBA::Long GetType();
void SetMeshName( const char* MeshName );
void SetMeshName(const char* MeshName);
char* GetMeshName();
void SetDataFile( const char* DataFile );
void SetDataFile(const char* DataFile);
char* GetDataFile();
void SetCylinder( double Xcentre, double Ycentre, double ZCentre,
void SetCylinder(double Xcentre, double Ycentre, double ZCentre,
double Xaxe, double Yaxe, double Zaxe,
double rayon );
void SetSphere( double Xcentre, double Ycentre, double ZCentre,
double rayon );
void SetConeR( double Xcentre1, double Ycentre1, double Zcentre1, double Rayon1,
double rayon);
void SetSphere(double Xcentre, double Ycentre, double ZCentre,
double rayon);
void SetConeR(double Xcentre1, double Ycentre1, double Zcentre1, double Rayon1,
double Xcentre2, double Ycentre2, double Zcentre2, double Rayon2);
void SetConeA( double Xaxe, double Yaxe, double Zaxe, double Angle,
void SetConeA(double Xaxe, double Yaxe, double Zaxe, double Angle,
double Xcentre, double Ycentre, double ZCentre);
void SetTorus( double Xcentre, double Ycentre, double ZCentre,
void SetTorus(double Xcentre, double Ycentre, double ZCentre,
double Xaxe, double Yaxe, double Zaxe,
double rayonRev, double rayonPri );
double rayonRev, double rayonPri);
SMESHHOMARD::double_array* GetCoords();
void SetLimit( double Xincr, double Yincr, double Zincr);
void SetLimit(double Xincr, double Yincr, double Zincr);
SMESHHOMARD::double_array* GetLimit();
void AddGroup( const char* Group);
void AddGroup(const char* Group);
void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
SMESHHOMARD::ListGroupType* GetGroups();
// Liens avec les autres structures
void SetCaseCreation( const char* NomCaseCreation );
char* GetCaseCreation();
// Liens avec les autres structures
void SetCaseCreation(const char* NomCaseCreation);
char* GetCaseCreation();
private:
SMESHHOMARDImpl::HOMARD_Boundary* myHomardBoundary;
CORBA::ORB_ptr _orb;
SMESHHOMARDImpl::HOMARD_Boundary* myHomardBoundary;
SMESHHOMARD::HOMARD_Gen_var _gen_i;
};
class SMESH_I_EXPORT HOMARD_Cas_i:
public virtual Engines_Component_i,
public virtual POA_SMESHHOMARD::HOMARD_Cas,
public virtual PortableServer::ServantBase
class SMESH_I_EXPORT HOMARD_Cas_i : public virtual SALOME::GenericObj_i,
public virtual POA_SMESHHOMARD::HOMARD_Cas
{
public:
HOMARD_Cas_i( CORBA::ORB_ptr orb, SMESHHOMARD::HOMARD_Gen_var gen_i );
HOMARD_Cas_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
HOMARD_Cas_i();
virtual ~HOMARD_Cas_i();
// Generalites
void SetName( const char* Name );
char* GetName();
CORBA::Long Delete( CORBA::Long Option );
char* GetDumpPython();
std::string Dump() const;
bool Restore( const std::string& stream );
char* GetName();
char* GetDumpPython();
// Caracteristiques
void SetDirName( const char* NomDir );
char* GetDirName();
void SetDirName(const char* NomDir);
char* GetDirName();
CORBA::Long GetState();
void SetConfType(CORBA::Long ConfType);
CORBA::Long GetConfType();
CORBA::Long GetNumberofIter();
void SetBoundingBox(const SMESHHOMARD::extrema& LesExtremes);
SMESHHOMARD::extrema* GetBoundingBox();
void SetConfType( CORBA::Long ConfType );
CORBA::Long GetConfType();
void SetExtType( CORBA::Long ExtType );
CORBA::Long GetExtType();
void SetBoundingBox( const SMESHHOMARD::extrema& LesExtremes );
SMESHHOMARD::extrema* GetBoundingBox();
void AddGroup( const char* Group);
void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
void AddGroup(const char* Group);
void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
SMESHHOMARD::ListGroupType* GetGroups();
void AddBoundary(const char* Boundary);
void AddBoundaryGroup(const char* Boundary, const char* Group);
SMESHHOMARD::ListBoundaryGroupType* GetBoundaryGroup();
void SupprBoundaryGroup( );
void AddBoundary(const char* Boundary);
void AddBoundaryGroup(const char* Boundary, const char* Group);
SMESHHOMARD::ListBoundaryGroupType* GetBoundaryGroup();
void SupprBoundaryGroup();
void SetPyram( CORBA::Long Pyram );
CORBA::Long GetPyram();
void MeshInfo(CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte);
// Liens avec les autres structures
char* GetIter0Name();
SMESHHOMARD::HOMARD_Iteration_ptr GetIter0();
SMESHHOMARD::HOMARD_Iteration_ptr NextIteration( const char* Name );
SMESHHOMARD::HOMARD_Iteration_ptr LastIteration();
void AddIteration( const char* NomIteration );
void AddIteration(const char* NomIteration);
private:
SMESHHOMARDImpl::HOMARD_Cas* myHomardCas;
CORBA::ORB_ptr _orb;
SMESHHOMARDImpl::HOMARD_Cas* myHomardCas;
SMESHHOMARD::HOMARD_Gen_var _gen_i;
};
class SMESH_I_EXPORT HOMARD_Hypothesis_i:
public virtual Engines_Component_i,
public virtual POA_SMESHHOMARD::HOMARD_Hypothesis,
public virtual PortableServer::ServantBase
class SMESH_I_EXPORT HOMARD_Hypothesis_i : public virtual SALOME::GenericObj_i,
public virtual POA_SMESHHOMARD::HOMARD_Hypothesis
{
public:
HOMARD_Hypothesis_i( CORBA::ORB_ptr orb, SMESHHOMARD::HOMARD_Gen_var gen_i );
HOMARD_Hypothesis_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
HOMARD_Hypothesis_i();
virtual ~HOMARD_Hypothesis_i();
// Generalites
void SetName( const char* Name );
char* GetName();
// Generalites
void SetExtraOutput(CORBA::Long ExtraOutput);
CORBA::Long GetExtraOutput();
CORBA::Long Delete();
char* GetDumpPython();
std::string Dump() const;
bool Restore( const std::string& stream );
// Caracteristiques
void SetUnifRefinUnRef( CORBA::Long TypeRaffDera );
SMESHHOMARD::listeTypes* GetAdapRefinUnRef();
CORBA::Long GetAdapType();
CORBA::Long GetRefinType();
CORBA::Long GetUnRefType();
void SetField( const char* FieldName );
char* GetFieldName();
void SetUseField(CORBA::Long UsField);
SMESHHOMARD::InfosHypo* GetField();
void SetUseComp(CORBA::Long UsCmpI);
void AddComp( const char* NomComp );
void SupprComp( const char* NomComp );
void SupprComps();
SMESHHOMARD::listeComposantsHypo* GetComps();
void SetRefinThr(CORBA::Long TypeThR, CORBA::Double ThreshR);
CORBA::Long GetRefinThrType();
void SetUnRefThr(CORBA::Long TypeThC, CORBA::Double ThreshC);
CORBA::Long GetUnRefThrType();
void SetNivMax( CORBA::Long NivMax );
CORBA::Long GetNivMax();
void SetDiamMin( CORBA::Double DiamMin );
CORBA::Double GetDiamMin();
void SetAdapInit( CORBA::Long AdapInit );
CORBA::Long GetAdapInit();
void SetExtraOutput( CORBA::Long ExtraOutput );
CORBA::Long GetExtraOutput();
void AddGroup( const char* Group);
void SupprGroup( const char* Group );
void SupprGroups();
void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
SMESHHOMARD::ListGroupType* GetGroups();
void SetTypeFieldInterp( CORBA::Long TypeFieldInterp );
CORBA::Long GetTypeFieldInterp();
void AddFieldInterp( const char* FieldInterp );
void AddFieldInterpType( const char* FieldInterp, CORBA::Long TypeInterp );
void SupprFieldInterp( const char* FieldInterp );
void SupprFieldInterps();
SMESHHOMARD::listeFieldInterpsHypo* GetFieldInterps();
// Liens avec les autres structures
void SetCaseCreation( const char* NomCaseCreation );
char* GetCaseCreation();
void LinkIteration( const char* NomIteration );
void UnLinkIteration( const char* NomIteration );
SMESHHOMARD::listeIters* GetIterations();
void LinkIteration(const char* NomIteration);
void UnLinkIteration(const char* NomIteration);
private:
SMESHHOMARDImpl::HOMARD_Hypothesis* myHomardHypothesis;
CORBA::ORB_ptr _orb;
SMESHHOMARD::HOMARD_Gen_var _gen_i;
};
class SMESH_I_EXPORT HOMARD_Iteration_i:
public virtual Engines_Component_i,
public virtual POA_SMESHHOMARD::HOMARD_Iteration,
public virtual PortableServer::ServantBase
class SMESH_I_EXPORT HOMARD_Iteration_i : public virtual SALOME::GenericObj_i,
public virtual POA_SMESHHOMARD::HOMARD_Iteration
{
public:
HOMARD_Iteration_i( CORBA::ORB_ptr orb,
SMESHHOMARD::HOMARD_Gen_var gen_i );
HOMARD_Iteration_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
HOMARD_Iteration_i();
virtual ~HOMARD_Iteration_i();
// Generalites
void SetName( const char* Name );
// Generalites
void SetName(const char* Name);
char* GetName();
CORBA::Long Delete( CORBA::Long Option, bool doRemoveWorkingFiles );
char* GetDumpPython();
std::string Dump() const;
bool Restore( const std::string& stream );
// Caracteristiques
void SetDirNameLoc( const char* NomDir );
// Caracteristiques
void SetDirNameLoc(const char* NomDir);
char* GetDirNameLoc();
char* GetDirName();
void SetNumber( CORBA::Long NumIter );
void SetNumber(CORBA::Long NumIter);
CORBA::Long GetNumber();
void SetState( CORBA::Long etat );
void SetState(CORBA::Long etat);
CORBA::Long GetState();
void SetMeshName( const char* NomMesh );
void SetMeshName(const char* NomMesh);
char* GetMeshName();
void SetMeshFile( const char* MeshFile );
void SetMeshFile(const char* MeshFile);
char* GetMeshFile();
void SetFieldFile( const char* FieldFile );
char* GetFieldFile();
// Instants pour le champ de pilotage
void SetTimeStep( CORBA::Long TimeStep );
void SetTimeStepRank( CORBA::Long TimeStep, CORBA::Long Rank );
void SetTimeStepRankLast();
CORBA::Long GetTimeStep();
CORBA::Long GetRank();
// Instants pour un champ a interpoler
void SetFieldInterpTimeStep( const char* FieldInterp, CORBA::Long TimeStep );
void SetFieldInterpTimeStepRank( const char* FieldInterp, CORBA::Long TimeStep, CORBA::Long Rank );
SMESHHOMARD::listeFieldInterpTSRsIter* GetFieldInterpsTimeStepRank();
void SetFieldInterp( const char* FieldInterp );
SMESHHOMARD::listeFieldInterpsIter* GetFieldInterps();
void SupprFieldInterps();
void SetLogFile( const char* LogFile );
void SetLogFile(const char* LogFile);
char* GetLogFile();
CORBA::Long Compute(CORBA::Long etatMenage, CORBA::Long Option);
void MeshInfo(CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte);
void MeshInfoOption(CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte, CORBA::Long Option);
void SetFileInfo( const char* FileInfo );
void SetFileInfo(const char* FileInfo);
char* GetFileInfo();
// Liens avec les autres iterations
SMESHHOMARD::HOMARD_Iteration_ptr NextIteration( const char* Name);
void LinkNextIteration(const char* NomIteration);
void UnLinkNextIteration(const char* NomIteration);
void LinkNextIteration( const char* NomIteration );
void UnLinkNextIteration( const char* NomIteration );
SMESHHOMARD::listeIterFilles* GetIterations();
void SetIterParentName( const char* NomIterParent );
void SetIterParentName(const char* NomIterParent);
char* GetIterParentName();
SMESHHOMARD::HOMARD_Iteration_ptr GetIterParent();
// Liens avec les autres structures
void SetCaseName( const char* NomCas );
// Liens avec les autres structures
void SetCaseName(const char* NomCas);
char* GetCaseName();
void AssociateHypo( const char* NomHypo);
void SetHypoName( const char* NomHypo );
char* GetHypoName();
void SetHypoName(const char* NomHypo);
// Divers
void SetInfoCompute( CORBA::Long MessInfo );
// Drivers
void SetInfoCompute(CORBA::Long MessInfo);
CORBA::Long GetInfoCompute();
private:
SMESHHOMARDImpl::HOMARD_Iteration* myHomardIteration;
CORBA::ORB_ptr _orb;
SMESHHOMARDImpl::HOMARD_Iteration* myHomardIteration;
SMESHHOMARD::HOMARD_Gen_var _gen_i;
};
class SMESH_I_EXPORT HOMARD_Gen_i : public virtual SALOME::GenericObj_i,
public virtual POA_SMESHHOMARD::HOMARD_Gen
public virtual POA_SMESHHOMARD::HOMARD_Gen
{
public:
HOMARD_Gen_i();
virtual ~HOMARD_Gen_i();
// Les creations
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundary (const char* nomBoundary,
CORBA::Long typeBoundary);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryCAO (const char* nomBoundary,
const char* DataFile);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryDi (const char* nomBoundary,
const char* MeshName, const char* DataFile);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryCylinder
(const char* nomBoundary,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
CORBA::Double Rayon);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundarySphere
(const char* nomBoundary,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
CORBA::Double Rayon);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryConeR
(const char* nomBoundary,
CORBA::Double Xcentre1, CORBA::Double Ycentre1, CORBA::Double Zcentre1,
CORBA::Double Rayon1,
CORBA::Double Xcentre2, CORBA::Double Ycentre2, CORBA::Double Zcentre2,
CORBA::Double Rayon2);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryConeA
(const char* nomBoundary,
CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
CORBA::Double Angle,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryTorus
(const char* nomBoundary,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
CORBA::Double RayonRev, CORBA::Double RayonPri);
// Generalites
SMESHHOMARD::HOMARD_Cas_ptr CreateCaseOnMesh (const char* MeshName,
SMESH::SMESH_Mesh_ptr smeshMesh,
const char* theWorkingDir);
SMESHHOMARD::HOMARD_Cas_ptr CreateCase (const char* MeshName,
const char* FileName,
const char* theWorkingDir);
// Les creations
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundary (const char* nomBoundary, CORBA::Long typeBoundary);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryCAO(const char* nomBoundary,
const char* DataFile);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryDi (const char* nomBoundary,
const char* MeshName, const char* DataFile);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryCylinder (const char* nomBoundary,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
CORBA::Double Rayon);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundarySphere (const char* nomBoundary,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
CORBA::Double Rayon);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryConeR (const char* nomBoundary,
CORBA::Double Xcentre1, CORBA::Double Ycentre1, CORBA::Double Zcentre1, CORBA::Double Rayon1,
CORBA::Double Xcentre2, CORBA::Double Ycentre2, CORBA::Double Zcentre2, CORBA::Double Rayon2);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryConeA (const char* nomBoundary,
CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis, CORBA::Double Angle,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre);
SMESHHOMARD::HOMARD_Boundary_ptr CreateBoundaryTorus (const char* nomBoundary,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
CORBA::Double Xaxis, CORBA::Double Yaxis, CORBA::Double Zaxis,
CORBA::Double RayonRev, CORBA::Double RayonPri);
SMESHHOMARD::HOMARD_Cas_ptr CreateCase (const char* nomCas, const char* MeshName,
const char* FileName);
SMESHHOMARD::HOMARD_Cas_ptr CreateCase0 (const char* nomCas, const char* MeshName,
const char* FileName, CORBA::Long MeshOption,
CORBA::Long NumeIter, CORBA::Long Option);
std::string CreateCase1 (const char* DirNameStart, CORBA::Long Number);
SMESHHOMARD::HOMARD_Hypothesis_ptr CreateHypothesis(const char* nomHypothesis);
SMESHHOMARD::HOMARD_Iteration_ptr CreateIteration (const char* nomIter, const char* nomIterParent);
SMESHHOMARD::HOMARD_Iteration_ptr CreateIteration();
// Les informations
SMESHHOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary);
SMESHHOMARD::HOMARD_Cas_ptr GetCase (const char* nomCas);
SMESHHOMARD::HOMARD_Hypothesis_ptr GetHypothesis (const char* nomHypothesis);
SMESHHOMARD::HOMARD_Iteration_ptr GetIteration (const char* nomIteration);
SMESHHOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary);
SMESHHOMARD::HOMARD_Cas_ptr GetCase ();
SMESHHOMARD::HOMARD_Iteration_ptr GetIteration (CORBA::Long numIter);
SMESHHOMARD::listeBoundarys* GetAllBoundarysName();
SMESHHOMARD::listeCases* GetAllCasesName();
SMESHHOMARD::listeHypotheses* GetAllHypothesesName();
SMESHHOMARD::listeIterations* GetAllIterationsName();
SMESHHOMARD::listeBoundarys* GetAllBoundarysName();
void MeshInfo (const char* nomCas,
const char* MeshName, const char* FileName, const char* DirName,
CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte);
void InvalideBoundary(const char* nomBoundary);
SMESHHOMARD::HOMARD_Iteration_ptr LastIteration (const char* nomCas);
CORBA::Long DeleteBoundary(const char* nomBoundary);
CORBA::Long DeleteCase();
CORBA::Long DeleteIteration(int numIter);
// Liens entre structures
void InvalideBoundary(const char* nomBoundary);
void InvalideHypo(const char* nomHypo);
void InvalideIter(const char* nomIter);
void InvalideIterOption(const char* nomIter, CORBA::Long Option,
bool doRemoveWorkingFiles);
void InvalideIterInfo(const char* nomIter);
void AssociateCaseIter(int numIter, const char* labelIter);
char* CreateDirNameIter(const char* nomrep, CORBA::Long num);
CORBA::Long DeleteBoundary(const char* nomBoundary);
CORBA::Long DeleteCase(const char* nomCas, CORBA::Long Option);
CORBA::Long DeleteHypo(const char* nomHypothesis);
CORBA::Long DeleteIteration(const char* nomIter,
CORBA::Long Option,
bool doRemoveWorkingFiles);
CORBA::Long DeleteIterationOption(const char* nomIter,
CORBA::Long Option1,
CORBA::Long Option2,
bool doRemoveWorkingFiles);
void AssociateIterHypo(const char* nomIter, const char* nomHypothesis);
void AssociateCaseIter(const char* nomCas, const char* nomIter,
const char* labelIter);
// Actions
void SetEtatIter(const char* nomIter,const CORBA::Long Etat);
char* CreateDirNameIter(const char* nomrep, CORBA::Long num );
CORBA::Long Compute(const char* nomIteration, CORBA::Long etatMenage,
CORBA::Long modeHOMARD,
CORBA::Long Option1, CORBA::Long Option2);
CORBA::Long Compute();
CORBA::Long ComputeAdap(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration,
CORBA::Long etatMenage, SMESHHOMARDImpl::HomardDriver* myDriver,
CORBA::Long Option1, CORBA::Long Option2);
SMESHHOMARDImpl::HomardDriver* myDriver);
CORBA::Long ComputeCAO(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration,
CORBA::Long Option1, CORBA::Long Option2);
CORBA::Long ComputeCAObis(SMESHHOMARD::HOMARD_Iteration_var myIteration,
CORBA::Long Option1, CORBA::Long Option2);
SMESHHOMARD::HOMARD_Iteration_var myIteration);
CORBA::Long ComputeCAObis(SMESHHOMARD::HOMARD_Iteration_var myIteration);
char* ComputeDirManagement(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration,
CORBA::Long etatMenage);
SMESHHOMARD::HOMARD_Iteration_var myIteration);
char* ComputeDirPaManagement(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration);
void DriverTexteField(SMESHHOMARD::HOMARD_Iteration_var myIteration,
SMESHHOMARD::HOMARD_Hypothesis_var myHypo,
SMESHHOMARDImpl::HomardDriver* myDriver);
int DriverTexteBoundary(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARDImpl::HomardDriver* myDriver);
void DriverTexteFieldInterp(SMESHHOMARD::HOMARD_Iteration_var myIteration,
SMESHHOMARD::HOMARD_Hypothesis_var myHypo,
SMESHHOMARDImpl::HomardDriver* myDriver);
char* VerifieDir(const char* nomDir);
void PublishResultInSmesh(const char* NomFich, CORBA::Long Option);
void DeleteResultInSmesh(std::string NomFich, std::string MeshName);
void PublishResultInSmesh(const char* NomFich, CORBA::Long Option);
void DeleteResultInSmesh(std::string NomFich, std::string MeshName);
void PublishMeshIterInSmesh(const char* NomIter);
void PythonDump();
// Preferences
void SetPreferences();
void SetLanguageShort(const char* LanguageShort);
char* GetLanguageShort();
void SetPublisMesh(CORBA::Long PublisMeshIN, CORBA::Long PublisMeshOUT);
CORBA::Long GetPublisMeshIN();
CORBA::Long GetPublisMeshOUT();
void SetKeepMedOUT(bool theKeepMedOUT);
void SetPublishMeshOUT(bool thePublishMeshOUT);
void SetMeshNameOUT (const char* theMeshNameOUT);
void SetMeshFileOUT (const char* theMeshFileOUT);
void SetVerboseLevel (CORBA::Long theVerboseLevel);
void SetKeepWorkingFiles(bool theKeepWorkingFiles);
void SetLogInFile(bool theLogInFile);
void SetLogFile (const char* theLogFile);
void SetRemoveLogOnSuccess(bool theRemoveLogOnSuccess);
private:
SMESHHOMARD::HOMARD_Boundary_ptr newBoundary();
SMESHHOMARD::HOMARD_Cas_ptr newCase();
SMESHHOMARD::HOMARD_Hypothesis_ptr newHypothesis();
SMESHHOMARD::HOMARD_Iteration_ptr newIteration();
std::string GetStringInTexte( const std::string Texte, const std::string String, int option );
SMESHHOMARD::HOMARD_Boundary_ptr newBoundary();
SMESHHOMARD::HOMARD_Cas_ptr newCase();
SMESHHOMARD::HOMARD_Iteration_ptr newIteration();
void CleanCase();
private:
struct StudyContext
{
std::map<std::string, SMESHHOMARD::HOMARD_Boundary_var> _mesBoundarys;
std::map<std::string, SMESHHOMARD::HOMARD_Cas_var> _mesCas;
std::map<std::string, SMESHHOMARD::HOMARD_Hypothesis_var> _mesHypotheses;
std::map<std::string, SMESHHOMARD::HOMARD_Iteration_var> _mesIterations;
};
SMESHHOMARDImpl::HOMARD_Gen* myHomard;
StudyContext myStudyContext;
std::map<std::string, SMESHHOMARD::HOMARD_Boundary_var> _mesBoundarys;
SMESHHOMARD::HOMARD_Hypothesis_var myHypothesis;
SMESHHOMARD::HOMARD_Iteration_var myIteration0;
SMESHHOMARD::HOMARD_Iteration_var myIteration1;
SMESHHOMARD::HOMARD_Cas_var myCase;
// Preferences
std::string _Langue;
std::string _LangueShort;
int _PublisMeshIN;
int _PublisMeshOUT;
bool _KeepMedOUT;
bool _PublishMeshOUT;
bool _KeepWorkingFiles;
bool _LogInFile;
bool _RemoveLogOnSuccess;
int _VerboseLevel;
std::string _MeshNameOUT;
std::string _MeshFileOUT;
std::string _LogFile;
// Input data type
bool _CaseOnMedFile;
SMESH::SMESH_Mesh_var _SmeshMesh;
};
SMESH_I_EXPORT int MEDFileExist( const char * aFile );
SMESH_I_EXPORT std::vector<double> GetBoundingBoxInMedFile( const char * aFile);
SMESH_I_EXPORT std::set<std::string> GetListeGroupesInMedFile(const char * aFile);
SMESH_I_EXPORT std::vector<double> GetBoundingBoxInMedFile(const char * aFile);
SMESH_I_EXPORT std::set<std::string> GetListeGroupesInMedFile(const char * aFile);
}; // namespace SMESHHOMARD_I