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 #ifndef _SMESH_HOMARD_IDL
#define _SMESH_HOMARD_IDL #define _SMESH_HOMARD_IDL
#include "SALOME_Component.idl" #include "SMESH_Mesh.idl"
#include "SALOME_Exception.idl" #include "SALOME_Exception.idl"
#include "SALOMEDS.idl" #include "SALOMEDS.idl"
@ -30,71 +31,47 @@ module SMESHHOMARD
typedef sequence<double> extrema; typedef sequence<double> extrema;
typedef sequence<string> ListGroupType; typedef sequence<string> ListGroupType;
typedef sequence<string> ListBoundaryGroupType; 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; typedef sequence<string> listeBoundarys;
struct InfosHypo interface HOMARD_Boundary : SALOME::GenericObj
{
string FieldName;
long UsCmpI;
long UsField;
long TypeThR;
double ThreshR;
long TypeThC;
double ThreshC;
};
interface HOMARD_Boundary : Engines::EngineComponent
{ {
// Generalites // Generalites
void SetName(in string Name) raises (SALOME::SALOME_Exception); void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() 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 // Caracteristiques
void SetType (in long Type) raises (SALOME::SALOME_Exception); void SetType (in long Type) raises (SALOME::SALOME_Exception);
long GetType() raises (SALOME::SALOME_Exception); long GetType() raises (SALOME::SALOME_Exception);
void SetDataFile(in string DataFile) raises (SALOME::SALOME_Exception); void SetDataFile(in string DataFile) raises (SALOME::SALOME_Exception);
string GetDataFile() raises (SALOME::SALOME_Exception); string GetDataFile() raises (SALOME::SALOME_Exception);
void SetMeshName(in string MeshName) raises (SALOME::SALOME_Exception); void SetMeshName(in string MeshName) raises (SALOME::SALOME_Exception);
string GetMeshName() raises (SALOME::SALOME_Exception); string GetMeshName() raises (SALOME::SALOME_Exception);
void SetCylinder (in double Xcentre, in double Ycentre, in double Zcentre, void SetCylinder (in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxe, in double Yaxe, in double Zaxe, in double rayon) 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) 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, void SetConeR (in double Xcentre1, in double Ycentre1, in double Zcentre1,
in double Xcentre2, in double Ycentre2, in double Zcentre2, in double Rayon2) in double Rayon1,
raises (SALOME::SALOME_Exception); 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, void SetConeA(in double Xaxe, in double Yaxe, in double Zaxe, in double Angle,
in double Xcentre,in double Ycentre,in double ZCentre) in double Xcentre, in double Ycentre, in double ZCentre)
raises (SALOME::SALOME_Exception); raises (SALOME::SALOME_Exception);
void SetTorus (in double Xcentre, in double Ycentre, in double Zcentre, void SetTorus (in double Xcentre, in double Ycentre, in double Zcentre,
in double Xaxe, in double Yaxe, in double Zaxe, in double Xaxe, in double Yaxe, in double Zaxe,
in double rayonRev, in double rayonPri) in double rayonRev, in double rayonPri)
raises (SALOME::SALOME_Exception); raises (SALOME::SALOME_Exception);
SMESHHOMARD::double_array GetCoords() raises (SALOME::SALOME_Exception); SMESHHOMARD::double_array GetCoords() raises (SALOME::SALOME_Exception);
void SetLimit (in double Xincr, in double Yincr, in double Zincr) void SetLimit (in double Xincr, in double Yincr, in double Zincr)
@ -108,28 +85,22 @@ module SMESHHOMARD
// Liens avec les autres iterations // Liens avec les autres iterations
void SetCaseCreation(in string NomCas) raises (SALOME::SALOME_Exception); void SetCaseCreation(in string NomCas) raises (SALOME::SALOME_Exception);
string GetCaseCreation() raises (SALOME::SALOME_Exception); string GetCaseCreation() raises (SALOME::SALOME_Exception);
}; };
interface HOMARD_Iteration : Engines::EngineComponent interface HOMARD_Iteration : SALOME::GenericObj
{ {
// Generalites // Generalites
void SetName(in string Name) raises (SALOME::SALOME_Exception); void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() 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);
// Caracteristiques // Caracteristiques
void SetDirNameLoc(in string NomDir) raises (SALOME::SALOME_Exception); void SetDirNameLoc(in string NomDir) raises (SALOME::SALOME_Exception);
string GetDirNameLoc() 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); void SetNumber(in long NumIter) raises (SALOME::SALOME_Exception);
long GetNumber() raises (SALOME::SALOME_Exception); long GetNumber() raises (SALOME::SALOME_Exception);
void SetState(in long State) raises (SALOME::SALOME_Exception); void SetState(in long State) raises (SALOME::SALOME_Exception);
long GetState() 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); void SetMeshFile(in string MeshFile) raises (SALOME::SALOME_Exception);
string GetMeshFile() 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 // Fichier des messages
void SetLogFile(in string LogFile) raises (SALOME::SALOME_Exception); void SetLogFile(in string LogFile) raises (SALOME::SALOME_Exception);
string GetLogFile() raises (SALOME::SALOME_Exception); string GetLogFile() raises (SALOME::SALOME_Exception);
long Compute(in long etatMenage, in long Option) raises (SALOME::SALOME_Exception); void SetFileInfo(in string FileInfo) raises (SALOME::SALOME_Exception);
string GetFileInfo() 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);
// Liens avec les autres iterations // 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 LinkNextIteration(in string NomIter) raises (SALOME::SALOME_Exception);
void UnLinkNextIteration(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); void SetIterParentName(in string NomIterParent) raises (SALOME::SALOME_Exception);
string GetIterParentName() raises (SALOME::SALOME_Exception); string GetIterParentName() raises (SALOME::SALOME_Exception);
HOMARD_Iteration GetIterParent() raises (SALOME::SALOME_Exception);
// Liens avec les autres structures // Liens avec les autres structures
void SetCaseName(in string NomCas) raises (SALOME::SALOME_Exception); void SetCaseName(in string NomCas) raises (SALOME::SALOME_Exception);
string GetCaseName() 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); 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); void SetInfoCompute(in long MessInfo) raises (SALOME::SALOME_Exception);
long GetInfoCompute() raises (SALOME::SALOME_Exception); long GetInfoCompute() raises (SALOME::SALOME_Exception);
}; };
interface HOMARD_Cas : Engines::EngineComponent interface HOMARD_Cas : SALOME::GenericObj
{ {
// Generalites string GetName() raises (SALOME::SALOME_Exception);
void SetName(in string Name) raises (SALOME::SALOME_Exception); string GetDumpPython() 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);
// Caracteristiques // Caracteristiques
void SetDirName(in string NomDir) raises (SALOME::SALOME_Exception); void SetDirName(in string NomDir) raises (SALOME::SALOME_Exception);
string GetDirName() raises (SALOME::SALOME_Exception); string GetDirName() raises (SALOME::SALOME_Exception);
long GetState() raises (SALOME::SALOME_Exception); void SetConfType(in long ConfType) raises (SALOME::SALOME_Exception);
long GetConfType() 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 SetBoundingBox(in extrema LesExtremes) raises (SALOME::SALOME_Exception); void SetBoundingBox(in extrema LesExtremes) raises (SALOME::SALOME_Exception);
extrema GetBoundingBox() 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); void SetGroups(in ListGroupType ListGroup) raises (SALOME::SALOME_Exception);
ListGroupType GetGroups() raises (SALOME::SALOME_Exception); ListGroupType GetGroups() raises (SALOME::SALOME_Exception);
void AddBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception); void AddBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception);
void AddBoundaryGroup(in string BoundaryName, in string Group) void AddBoundaryGroup(in string BoundaryName,
raises (SALOME::SALOME_Exception); in string Group) raises (SALOME::SALOME_Exception);
ListBoundaryGroupType GetBoundaryGroup() raises (SALOME::SALOME_Exception); ListBoundaryGroupType GetBoundaryGroup() raises (SALOME::SALOME_Exception);
void SupprBoundaryGroup() raises (SALOME::SALOME_Exception); void SupprBoundaryGroup() raises (SALOME::SALOME_Exception);
void SetPyram(in long Pyram) raises (SALOME::SALOME_Exception); void AddIteration (in string IterName) 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);
}; };
interface HOMARD_Hypothesis : Engines::EngineComponent interface HOMARD_Hypothesis : SALOME::GenericObj
{ {
// Generalites // 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); void SetExtraOutput(in long ExtraOutput) raises (SALOME::SALOME_Exception);
long GetExtraOutput() 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 LinkIteration(in string NomIteration) raises (SALOME::SALOME_Exception);
void UnLinkIteration(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 interface HOMARD_Gen : SALOME::GenericObj
{ {
// HOMARD_Boundary CreateBoundaryCAO (in string BoundaryName, in string FileName)
// 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 )
raises(SALOME::SALOME_Exception); raises(SALOME::SALOME_Exception);
// HOMARD_Boundary CreateBoundaryDi (in string BoundaryName, in string MeshName,
void InvalideBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception); in string FileName)
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)
raises(SALOME::SALOME_Exception); raises(SALOME::SALOME_Exception);
HOMARD_Boundary CreateBoundaryCylinder (in string BoundaryName,
long Compute (in string IterName, in long CleanOption, in long modeHOMARD, in double Xcentre, in double Ycentre, in double Zcentre,
in long Option1, in long Option2) in double Xaxis, in double Yaxis, in double Zaxis,
raises(SALOME::SALOME_Exception); in double Radius)
//
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)
raises (SALOME::SALOME_Exception); raises (SALOME::SALOME_Exception);
long GetPublisMeshIN () raises (SALOME::SALOME_Exception); HOMARD_Boundary CreateBoundarySphere (in string BoundaryName,
long GetPublisMeshOUT () raises (SALOME::SALOME_Exception); 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 }; // module SMESHHOMARD

View File

@ -126,7 +126,6 @@ namespace SMESHHOMARDImpl
os << cas.GetName(); os << cas.GetName();
os << separator() << cas.GetDirName(); os << separator() << cas.GetDirName();
os << separator() << cas.GetConfType(); os << separator() << cas.GetConfType();
os << separator() << cas.GetExtType();
std::vector<double> coor = cas.GetBoundingBox(); std::vector<double> coor = cas.GetBoundingBox();
os << separator() << coor.size(); os << separator() << coor.size();
@ -148,7 +147,7 @@ namespace SMESHHOMARDImpl
for ( it = ListString.begin(); it != ListString.end(); ++it ) for ( it = ListString.begin(); it != ListString.end(); ++it )
os << separator() << *it; os << separator() << *it;
os << separator() << cas.GetPyram(); os << separator() << 0; //cas.GetPyram()
saux = os.str(); saux = os.str();
// MESSAGE( ". Fin avec "<<saux); // MESSAGE( ". Fin avec "<<saux);
@ -341,10 +340,6 @@ namespace SMESHHOMARDImpl
if ( !ok ) return false; if ( !ok ) return false;
cas.SetConfType( atoi( chunk.c_str() ) ); 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 ); chunk = getNextChunk( stream, start, ok );
if ( !ok ) return false; if ( !ok ) return false;
@ -392,7 +387,7 @@ namespace SMESHHOMARDImpl
chunk = getNextChunk( stream, start, ok ); chunk = getNextChunk( stream, start, ok );
if ( !ok ) return false; if ( !ok ) return false;
cas.SetPyram( atoi( chunk.c_str() ) ); //cas.SetPyram( atoi( chunk.c_str() ) );
return true; return true;
} }
@ -737,57 +732,47 @@ std::string HOMARD_Boundary::GetName() const
std::string HOMARD_Boundary::GetDumpPython() const std::string HOMARD_Boundary::GetDumpPython() const
{ {
std::ostringstream aScript; std::ostringstream aScript;
aScript << "\n# Creation of the "; switch (_Type) {
//
switch (_Type)
{
case -1: case -1:
{ {
aScript << "CAO boundary " << _Name << "\n"; aScript << _Name << " = smeshhomard.CreateBoundaryCAO(\"" << _Name << "\", ";
aScript << "\t" << _Name << " = homard.CreateBoundaryCAO(\"" << _Name << "\", ";
aScript << "\"" << _DataFile << "\")\n"; aScript << "\"" << _DataFile << "\")\n";
break ; break ;
} }
case 0: case 0:
{ {
aScript << "discrete boundary " << _Name << "\n"; aScript << _Name << " = smeshhomard.CreateBoundaryDi(\"" << _Name << "\", ";
aScript << "\t" << _Name << " = homard.CreateBoundaryDi(\"" << _Name << "\", ";
aScript << "\"" << _MeshName << "\", "; aScript << "\"" << _MeshName << "\", ";
aScript << "\"" << _DataFile << "\")\n"; aScript << "\"" << _DataFile << "\")\n";
break ; break ;
} }
case 1: case 1:
{ {
aScript << "cylinder " << _Name << "\n"; aScript << _Name << " = smeshhomard.CreateBoundaryCylinder(\"" << _Name << "\", ";
aScript << "\t" << _Name << " = homard.CreateBoundaryCylinder(\"" << _Name << "\", ";
aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _rayon << ")\n"; aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _rayon << ")\n";
break ; break ;
} }
case 2: case 2:
{ {
aScript << "sphere " << _Name << "\n"; aScript << _Name << " = smeshhomard.CreateBoundarySphere(\"" << _Name << "\", ";
aScript << "\t" << _Name << " = homard.CreateBoundarySphere(\"" << _Name << "\", ";
aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _rayon << ")\n"; aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _rayon << ")\n";
break ; break ;
} }
case 3: case 3:
{ {
aScript << "cone " << _Name << "\n"; aScript << _Name << " = smeshhomard.CreateBoundaryConeA(\"" << _Name << "\", ";
aScript << "\t" << _Name << " = homard.CreateBoundaryConeA(\"" << _Name << "\", ";
aScript << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Angle << ", " << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ")\n"; aScript << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Angle << ", " << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ")\n";
break ; break ;
} }
case 4: case 4:
{ {
aScript << "cone " << _Name << "\n"; aScript << _Name << " = smeshhomard.CreateBoundaryConeR(\"" << _Name << "\", ";
aScript << "\t" << _Name << " = homard.CreateBoundaryConeR(\"" << _Name << "\", ";
aScript << _Xcentre1 << ", " << _Ycentre1 << ", " << _Zcentre1 << ", " << _Rayon1 << ", " << _Xcentre2 << ", " << _Ycentre2 << ", " << _Zcentre2 << ", " << _Rayon2 << ")\n"; aScript << _Xcentre1 << ", " << _Ycentre1 << ", " << _Zcentre1 << ", " << _Rayon1 << ", " << _Xcentre2 << ", " << _Ycentre2 << ", " << _Zcentre2 << ", " << _Rayon2 << ")\n";
break ; break ;
} }
case 5: case 5:
{ {
aScript << "tore " << _Name << "\n"; aScript << _Name << " = smeshhomard.CreateBoundaryTorus(\"" << _Name << "\", ";
aScript << "\t" << _Name << " = homard.CreateBoundaryTorus(\"" << _Name << "\", ";
aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Rayon1 << ", " << _Rayon2 << ")\n"; aScript << _Xcentre << ", " << _Ycentre << ", " << _Zcentre << ", " << _Xaxe << ", " << _Yaxe << ", " << _Zaxe << ", " << _Rayon1 << ", " << _Rayon2 << ")\n";
break ; break ;
} }
@ -994,7 +979,7 @@ std::string HOMARD_Boundary::GetCaseCreation() const
*/ */
//============================================================================= //=============================================================================
HOMARD_Cas::HOMARD_Cas(): HOMARD_Cas::HOMARD_Cas():
_Name(""), _NomDir("/tmp"), _ConfType(0), _ExtType(0) _Name(""), _NomDir("/tmp"), _ConfType(0)
{ {
MESSAGE("HOMARD_Cas"); MESSAGE("HOMARD_Cas");
} }
@ -1022,27 +1007,16 @@ std::string HOMARD_Cas::GetName() const
std::string HOMARD_Cas::GetDumpPython() const std::string HOMARD_Cas::GetDumpPython() const
{ {
std::ostringstream aScript; std::ostringstream aScript;
aScript << "\t" <<_Name << ".SetDirName(\""; //aScript << _Name << ".SetDirName(\"" << _NomDir << "\")\n";
aScript << _NomDir << "\")\n"; aScript << _Name << ".SetConfType(" << _ConfType << ")\n";
aScript << "\t" <<_Name << ".SetConfType("; // Suivi de frontieres
aScript << _ConfType << ")\n";
aScript << "\t" <<_Name << ".SetExtType(";
aScript << _ExtType << ")\n";
// Suivi de frontieres
std::list<std::string>::const_iterator it = _ListBoundaryGroup.begin(); std::list<std::string>::const_iterator it = _ListBoundaryGroup.begin();
while(it != _ListBoundaryGroup.end()) while (it != _ListBoundaryGroup.end()) {
{ aScript << _Name << ".AddBoundaryGroup(\"" << *it << "\", \"";
aScript << "\t" <<_Name << ".AddBoundaryGroup(\"";
aScript << *it << "\", \"";
it++; it++;
aScript << *it << "\")\n"; aScript << *it << "\")\n";
it++; it++;
} }
if ( _Pyram > 0 )
{
aScript << "\t" <<_Name << ".SetPyram(";
aScript << _Pyram << ")\n";
}
return aScript.str(); return aScript.str();
} }
@ -1103,20 +1077,6 @@ const int HOMARD_Cas::GetConfType() const
return _ConfType; 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 // La boite englobante
// //
//============================================================================= //=============================================================================
@ -1189,16 +1149,6 @@ void HOMARD_Cas::SupprBoundaryGroup()
_ListBoundaryGroup.clear(); _ListBoundaryGroup.clear();
} }
//============================================================================= //=============================================================================
void HOMARD_Cas::SetPyram( int Pyram )
{
_Pyram = Pyram;
}
//=============================================================================
const int HOMARD_Cas::GetPyram() const
{
return _Pyram;
}
//=============================================================================
//============================================================================= //=============================================================================
// Liens avec les autres structures // 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"); MESSAGE("TexteAdap");
//
_Texte += "Action homa\n" ; _Texte += "Action homa\n";
if ( ExtType == 0 ) { _Texte += "CCAssoci med\n" ; } _Texte += "CCAssoci med\n";
else if ( ExtType == 1 ) { _Texte += "CCAssoci saturne\n" ; } _Texte += "ModeHOMA 1\n";
else { _Texte += "CCAssoci saturne_2d\n" ; } _Texte += "NumeIter " + _siter + "\n";
_Texte += "ModeHOMA 1\n" ; _modeHOMARD = 1;
_Texte += "NumeIter " + _siter + "\n" ;
_modeHOMARD = 1 ;
//
} }
//=============================================================================== //===============================================================================
void HomardDriver::TexteInfo( int TypeBila, int NumeIter ) void HomardDriver::TexteInfo( int TypeBila, int NumeIter )
@ -2163,15 +2110,10 @@ void HomardDriver::TexteFieldInterpNameType( int NumeChamp, const std::string Fi
//=============================================================================== //===============================================================================
// F. Les options avancees // 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 ) if ( NivMax > 0 )
{ {
_Texte += "# Niveaux extremes\n" ; _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 ; std::string commande ;
int codret ; int codret ;
// Copie des Fichiers HOMARD // Copie des Fichiers HOMARD
commande = "cp " + _NomFichierConf + " " + _NomFichierConfBase ; commande = "cp " + _NomFichierConf + " " + _NomFichierConfBase ;
codret = system(commande.c_str()) ; codret = system(commande.c_str()) ;
@ -2322,9 +2264,11 @@ HOMARD_Hypothesis::HOMARD_Hypothesis():
_Name(""), _NomCasCreation(""), _Name(""), _NomCasCreation(""),
_TypeAdap(-1), _TypeRaff(0), _TypeDera(0), _TypeAdap(-1), _TypeRaff(0), _TypeDera(0),
_Field(""), _Field(""),
_TypeThR(0), _ThreshR(0), _TypeThR(0), _TypeThC(0),
_TypeThC(0), _ThreshC(0), _ThreshR(0), _ThreshC(0),
_UsField(0), _UsCmpI(0), _TypeFieldInterp(0) _UsField(0), _UsCmpI(0), _TypeFieldInterp(0),
_NivMax(-1), _DiamMin(-1.0), _AdapInit(0), _ExtraOutput(1)
{ {
MESSAGE("HOMARD_Hypothesis"); MESSAGE("HOMARD_Hypothesis");
} }
@ -2352,94 +2296,6 @@ std::string HOMARD_Hypothesis::GetName() const
return _Name; 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 // Caracteristiques
//============================================================================= //=============================================================================
@ -2843,83 +2699,6 @@ std::string HOMARD_Iteration::GetName() const
return _Name; 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 // Caracteristiques
//============================================================================= //=============================================================================

View File

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

View File

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

View File

@ -119,34 +119,10 @@
<source>HOM_MED_FILE_4</source> <source>HOM_MED_FILE_4</source>
<translation>Impossible de lire le maillage de ce fichier MED.</translation> <translation>Impossible de lire le maillage de ce fichier MED.</translation>
</message> </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> <message>
<source>HOM_SELECT_STUDY</source> <source>HOM_SELECT_STUDY</source>
<translation>Sélectionner une étude avec un fichier MED associé\n ou sélectionner un fichier MED.</translation> <translation>Sélectionner une étude avec un fichier MED associé\n ou sélectionner un fichier MED.</translation>
</message> </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> <message>
<source>HOM_CASE_DIRECTORY_3</source> <source>HOM_CASE_DIRECTORY_3</source>
<translation>Un répertoire valide doit être choisi.</translation> <translation>Un répertoire valide doit être choisi.</translation>
@ -215,10 +191,6 @@
<source>HOM_ITER_HYPO</source> <source>HOM_ITER_HYPO</source>
<translation>Choisir une hypothèse.</translation> <translation>Choisir une hypothèse.</translation>
</message> </message>
<message>
<source>HOM_ITER_FIELD_FILE</source>
<translation>Avec cette hypothèse, il faut fournir le fichier du champ.</translation>
</message>
<message> <message>
<source>HOM_ITER_STARTING_POINT_0</source> <source>HOM_ITER_STARTING_POINT_0</source>
<translation>Maillage</translation> <translation>Maillage</translation>
@ -411,30 +383,6 @@
<source>Mesh n+1</source> <source>Mesh n+1</source>
<translation>Maillage n+1</translation> <translation>Maillage n+1</translation>
</message> </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> <message>
<source>Rank</source> <source>Rank</source>
<translation>Numéro d'ordre</translation> <translation>Numéro d'ordre</translation>
@ -451,10 +399,6 @@
<source>HOM_HYPO_NAME</source> <source>HOM_HYPO_NAME</source>
<translation>Il faut donner un nom à l'hypothèse.</translation> <translation>Il faut donner un nom à l'hypothèse.</translation>
</message> </message>
<message>
<source>HOM_HYPO_FIELD_FILE</source>
<translation>Il faut fournir le fichier du champ.</translation>
</message>
<message> <message>
<source>HOM_HYPO_NORM_L2</source> <source>HOM_HYPO_NORM_L2</source>
<translation>Norme L2</translation> <translation>Norme L2</translation>
@ -487,10 +431,6 @@
<source>Uniform</source> <source>Uniform</source>
<translation>Uniforme</translation> <translation>Uniforme</translation>
</message> </message>
<message>
<source>Driven by a field</source>
<translation>Pilotage par un champ</translation>
</message>
<message> <message>
<source>Uniform adaptation</source> <source>Uniform adaptation</source>
<translation>Adaptation uniforme</translation> <translation>Adaptation uniforme</translation>
@ -507,18 +447,6 @@
<source>Nothing</source> <source>Nothing</source>
<translation>Rien</translation> <translation>Rien</translation>
</message> </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> <message>
<source>Jump between elements</source> <source>Jump between elements</source>
<translation>Saut entre éléments</translation> <translation>Saut entre éléments</translation>
@ -555,10 +483,6 @@
<source>No coarsening</source> <source>No coarsening</source>
<translation>Sans déraffinement</translation> <translation>Sans déraffinement</translation>
</message> </message>
<message>
<source>Field Interpolation</source>
<translation>Interpolation des champs</translation>
</message>
<message> <message>
<source>Chosen</source> <source>Chosen</source>
<translation>Choisi</translation> <translation>Choisi</translation>

View File

@ -216,10 +216,6 @@
<source>HOM_ITER_HYPO</source> <source>HOM_ITER_HYPO</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>HOM_ITER_FIELD_FILE</source>
<translation></translation>
</message>
<message> <message>
<source>HOM_ITER_STARTING_POINT_0</source> <source>HOM_ITER_STARTING_POINT_0</source>
<translation></translation> <translation></translation>
@ -400,30 +396,6 @@
<source>Mesh n+1</source> <source>Mesh n+1</source>
<translation> n + 1</translation> <translation> n + 1</translation>
</message> </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> <message>
<source>Rank</source> <source>Rank</source>
<translation></translation> <translation></translation>
@ -440,10 +412,6 @@
<source>HOM_HYPO_NAME</source> <source>HOM_HYPO_NAME</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>HOM_HYPO_FIELD_FILE</source>
<translation></translation>
</message>
<message> <message>
<source>HOM_HYPO_NORM_L2</source> <source>HOM_HYPO_NORM_L2</source>
<translation> L2</translation> <translation> L2</translation>
@ -476,10 +444,6 @@
<source>Uniform</source> <source>Uniform</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Driven by a field</source>
<translation></translation>
</message>
<message> <message>
<source>Uniform adaptation</source> <source>Uniform adaptation</source>
<translation></translation> <translation></translation>
@ -492,18 +456,6 @@
<source>Nothing</source> <source>Nothing</source>
<translation></translation> <translation></translation>
</message> </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> <message>
<source>Jump between elements</source> <source>Jump between elements</source>
<translation></translation> <translation></translation>
@ -540,10 +492,6 @@
<source>No coarsening</source> <source>No coarsening</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Field Interpolation</source>
<translation></translation>
</message>
<message> <message>
<source>Chosen</source> <source>Chosen</source>
<translation></translation> <translation></translation>

View File

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

View File

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

View File

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

View File

@ -123,7 +123,7 @@ void SMESH_CreateListGroupCAO::InitGroupes()
TWGroupe->removeRow(row); TWGroupe->removeRow(row);
TWGroupe->setRowCount(0); TWGroupe->setRowCount(0);
if (_aCaseName == QString("")) { return; }; 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(); SMESHHOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
for ( int i = 0; i < _listeGroupesCas->length(); i++ ) { for ( int i = 0; i < _listeGroupesCas->length(); i++ ) {
TWGroupe->insertRow(i); TWGroupe->insertRow(i);
@ -231,7 +231,7 @@ void SMESH_CreateListGroup::InitGroupes()
TWGroupe->removeRow(row); TWGroupe->removeRow(row);
TWGroupe->setRowCount(0); TWGroupe->setRowCount(0);
if (_aCaseName == QString("")) { return; }; 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(); SMESHHOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups();
for ( int i = 0; i < _listeGroupesCas->length(); i++ ) 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> <source>ADAPT_PREF_NONE</source>
<translation>None</translation> <translation>None</translation>
</message> </message>
<message>
<source>ADAPT_WITH_HOMARD</source>
<translation>Adaptation with HOMARD</translation>
</message>
<message> <message>
<source>ADAPT_PREF_MG_ADAPT</source> <source>ADAPT_PREF_MG_ADAPT</source>
<translation>Adaptation with MG-Adapt</translation> <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> <source>ADAPT_PREF_NONE</source>
<translation>Sans</translation> <translation>Sans</translation>
</message> </message>
<message>
<source>ADAPT_WITH_HOMARD</source>
<translation>Adaptation avec HOMARD</translation>
</message>
<message> <message>
<source>ADAPT_PREF_MG_ADAPT</source> <source>ADAPT_PREF_MG_ADAPT</source>
<translation>Adaptation avec MG-Adapt</translation> <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 // 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_ #ifndef _SMESH_HOMARD_I_HXX_
#define _SMESH_HOMARD_I_HXX_ #define _SMESH_HOMARD_I_HXX_
@ -36,6 +26,7 @@
#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes) #include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog) #include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
#include CORBA_CLIENT_HEADER(SMESH_Gen) #include CORBA_CLIENT_HEADER(SMESH_Gen)
#include CORBA_CLIENT_HEADER(SMESH_Mesh)
#include "SMESH.hxx" #include "SMESH.hxx"
#include "SMESH_Homard.hxx" #include "SMESH_Homard.hxx"
@ -49,498 +40,312 @@
#include <string> #include <string>
#include <vector> #include <vector>
//namespace SMESHHOMARDImpl
//{
// class HOMARD_Boundary;
// class HOMARD_Cas;
// class HOMARD_Hypothesis;
// class HOMARD_Iteration;
//};
namespace SMESHHOMARD_I namespace SMESHHOMARD_I
{ {
class SMESH_I_EXPORT HOMARD_Boundary_i: class SMESH_I_EXPORT HOMARD_Boundary_i : public virtual SALOME::GenericObj_i,
public virtual Engines_Component_i, public virtual POA_SMESHHOMARD::HOMARD_Boundary
public virtual POA_SMESHHOMARD::HOMARD_Boundary,
public virtual PortableServer::ServantBase
{ {
public: 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(); HOMARD_Boundary_i();
virtual ~HOMARD_Boundary_i(); virtual ~HOMARD_Boundary_i();
// Generalites // Generalites
void SetName( const char* Name ); void SetName(const char* Name);
char* GetName(); char* GetName();
CORBA::Long Delete();
char* GetDumpPython(); char* GetDumpPython();
std::string Dump() const;
bool Restore( const std::string& stream );
// Caracteristiques // Caracteristiques
void SetType( CORBA::Long Type ); void SetType(CORBA::Long Type);
CORBA::Long GetType(); CORBA::Long GetType();
void SetMeshName( const char* MeshName ); void SetMeshName(const char* MeshName);
char* GetMeshName(); char* GetMeshName();
void SetDataFile( const char* DataFile ); void SetDataFile(const char* DataFile);
char* GetDataFile(); 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 Xaxe, double Yaxe, double Zaxe,
double rayon ); double rayon);
void SetSphere( double Xcentre, double Ycentre, double ZCentre, void SetSphere(double Xcentre, double Ycentre, double ZCentre,
double rayon ); double rayon);
void SetConeR( double Xcentre1, double Ycentre1, double Zcentre1, double Rayon1, void SetConeR(double Xcentre1, double Ycentre1, double Zcentre1, double Rayon1,
double Xcentre2, double Ycentre2, double Zcentre2, double Rayon2); 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); 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 Xaxe, double Yaxe, double Zaxe,
double rayonRev, double rayonPri ); double rayonRev, double rayonPri);
SMESHHOMARD::double_array* GetCoords(); SMESHHOMARD::double_array* GetCoords();
void SetLimit( double Xincr, double Yincr, double Zincr); void SetLimit(double Xincr, double Yincr, double Zincr);
SMESHHOMARD::double_array* GetLimit(); SMESHHOMARD::double_array* GetLimit();
void AddGroup( const char* Group); void AddGroup(const char* Group);
void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup); void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
SMESHHOMARD::ListGroupType* GetGroups(); SMESHHOMARD::ListGroupType* GetGroups();
// Liens avec les autres structures // Liens avec les autres structures
void SetCaseCreation( const char* NomCaseCreation ); void SetCaseCreation(const char* NomCaseCreation);
char* GetCaseCreation(); char* GetCaseCreation();
private: private:
SMESHHOMARDImpl::HOMARD_Boundary* myHomardBoundary; SMESHHOMARDImpl::HOMARD_Boundary* myHomardBoundary;
CORBA::ORB_ptr _orb;
SMESHHOMARD::HOMARD_Gen_var _gen_i; SMESHHOMARD::HOMARD_Gen_var _gen_i;
}; };
class SMESH_I_EXPORT HOMARD_Cas_i: class SMESH_I_EXPORT HOMARD_Cas_i : public virtual SALOME::GenericObj_i,
public virtual Engines_Component_i, public virtual POA_SMESHHOMARD::HOMARD_Cas
public virtual POA_SMESHHOMARD::HOMARD_Cas,
public virtual PortableServer::ServantBase
{ {
public: 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(); HOMARD_Cas_i();
virtual ~HOMARD_Cas_i(); virtual ~HOMARD_Cas_i();
// Generalites char* GetName();
void SetName( const char* Name ); char* GetDumpPython();
char* GetName();
CORBA::Long Delete( CORBA::Long Option );
char* GetDumpPython();
std::string Dump() const;
bool Restore( const std::string& stream );
// Caracteristiques // Caracteristiques
void SetDirName( const char* NomDir ); void SetDirName(const char* NomDir);
char* GetDirName(); 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 ); void AddGroup(const char* Group);
CORBA::Long GetConfType(); void SetGroups(const SMESHHOMARD::ListGroupType& ListGroup);
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);
SMESHHOMARD::ListGroupType* GetGroups(); SMESHHOMARD::ListGroupType* GetGroups();
void AddBoundary(const char* Boundary); void AddBoundary(const char* Boundary);
void AddBoundaryGroup(const char* Boundary, const char* Group); void AddBoundaryGroup(const char* Boundary, const char* Group);
SMESHHOMARD::ListBoundaryGroupType* GetBoundaryGroup(); SMESHHOMARD::ListBoundaryGroupType* GetBoundaryGroup();
void SupprBoundaryGroup( ); void SupprBoundaryGroup();
void SetPyram( CORBA::Long Pyram ); void AddIteration(const char* NomIteration);
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 );
private: private:
SMESHHOMARDImpl::HOMARD_Cas* myHomardCas; SMESHHOMARDImpl::HOMARD_Cas* myHomardCas;
CORBA::ORB_ptr _orb;
SMESHHOMARD::HOMARD_Gen_var _gen_i; SMESHHOMARD::HOMARD_Gen_var _gen_i;
}; };
class SMESH_I_EXPORT HOMARD_Hypothesis_i: class SMESH_I_EXPORT HOMARD_Hypothesis_i : public virtual SALOME::GenericObj_i,
public virtual Engines_Component_i, public virtual POA_SMESHHOMARD::HOMARD_Hypothesis
public virtual POA_SMESHHOMARD::HOMARD_Hypothesis,
public virtual PortableServer::ServantBase
{ {
public: 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(); HOMARD_Hypothesis_i();
virtual ~HOMARD_Hypothesis_i(); virtual ~HOMARD_Hypothesis_i();
// Generalites // Generalites
void SetName( const char* Name ); void SetExtraOutput(CORBA::Long ExtraOutput);
char* GetName(); CORBA::Long GetExtraOutput();
CORBA::Long Delete(); void LinkIteration(const char* NomIteration);
void UnLinkIteration(const char* NomIteration);
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();
private: private:
SMESHHOMARDImpl::HOMARD_Hypothesis* myHomardHypothesis; SMESHHOMARDImpl::HOMARD_Hypothesis* myHomardHypothesis;
CORBA::ORB_ptr _orb;
SMESHHOMARD::HOMARD_Gen_var _gen_i; SMESHHOMARD::HOMARD_Gen_var _gen_i;
}; };
class SMESH_I_EXPORT HOMARD_Iteration_i: class SMESH_I_EXPORT HOMARD_Iteration_i : public virtual SALOME::GenericObj_i,
public virtual Engines_Component_i, public virtual POA_SMESHHOMARD::HOMARD_Iteration
public virtual POA_SMESHHOMARD::HOMARD_Iteration,
public virtual PortableServer::ServantBase
{ {
public: public:
HOMARD_Iteration_i( CORBA::ORB_ptr orb, HOMARD_Iteration_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
SMESHHOMARD::HOMARD_Gen_var gen_i );
HOMARD_Iteration_i(); HOMARD_Iteration_i();
virtual ~HOMARD_Iteration_i(); virtual ~HOMARD_Iteration_i();
// Generalites // Generalites
void SetName( const char* Name ); void SetName(const char* Name);
char* GetName(); char* GetName();
CORBA::Long Delete( CORBA::Long Option, bool doRemoveWorkingFiles ); // Caracteristiques
void SetDirNameLoc(const char* NomDir);
char* GetDumpPython();
std::string Dump() const;
bool Restore( const std::string& stream );
// Caracteristiques
void SetDirNameLoc( const char* NomDir );
char* GetDirNameLoc(); char* GetDirNameLoc();
char* GetDirName(); char* GetDirName();
void SetNumber( CORBA::Long NumIter ); void SetNumber(CORBA::Long NumIter);
CORBA::Long GetNumber(); CORBA::Long GetNumber();
void SetState( CORBA::Long etat ); void SetState(CORBA::Long etat);
CORBA::Long GetState(); CORBA::Long GetState();
void SetMeshName( const char* NomMesh ); void SetMeshName(const char* NomMesh);
char* GetMeshName(); char* GetMeshName();
void SetMeshFile( const char* MeshFile ); void SetMeshFile(const char* MeshFile);
char* GetMeshFile(); char* GetMeshFile();
void SetFieldFile( const char* FieldFile ); void SetLogFile(const char* LogFile);
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 );
char* GetLogFile(); char* GetLogFile();
CORBA::Long Compute(CORBA::Long etatMenage, CORBA::Long Option); void SetFileInfo(const char* FileInfo);
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 );
char* GetFileInfo(); char* GetFileInfo();
// Liens avec les autres iterations // 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 SetIterParentName(const char* NomIterParent);
void UnLinkNextIteration( const char* NomIteration );
SMESHHOMARD::listeIterFilles* GetIterations();
void SetIterParentName( const char* NomIterParent );
char* GetIterParentName(); char* GetIterParentName();
SMESHHOMARD::HOMARD_Iteration_ptr GetIterParent();
// Liens avec les autres structures // Liens avec les autres structures
void SetCaseName( const char* NomCas ); void SetCaseName(const char* NomCas);
char* GetCaseName(); char* GetCaseName();
void AssociateHypo( const char* NomHypo); void SetHypoName(const char* NomHypo);
void SetHypoName( const char* NomHypo );
char* GetHypoName();
// Divers // Drivers
void SetInfoCompute( CORBA::Long MessInfo ); void SetInfoCompute(CORBA::Long MessInfo);
CORBA::Long GetInfoCompute(); CORBA::Long GetInfoCompute();
private: private:
SMESHHOMARDImpl::HOMARD_Iteration* myHomardIteration; SMESHHOMARDImpl::HOMARD_Iteration* myHomardIteration;
CORBA::ORB_ptr _orb;
SMESHHOMARD::HOMARD_Gen_var _gen_i; SMESHHOMARD::HOMARD_Gen_var _gen_i;
}; };
class SMESH_I_EXPORT HOMARD_Gen_i : public virtual SALOME::GenericObj_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: public:
HOMARD_Gen_i(); HOMARD_Gen_i();
virtual ~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_Iteration_ptr CreateIteration();
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);
// Les informations // Les informations
SMESHHOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary); SMESHHOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary);
SMESHHOMARD::HOMARD_Cas_ptr GetCase (const char* nomCas); SMESHHOMARD::HOMARD_Cas_ptr GetCase ();
SMESHHOMARD::HOMARD_Hypothesis_ptr GetHypothesis (const char* nomHypothesis); SMESHHOMARD::HOMARD_Iteration_ptr GetIteration (CORBA::Long numIter);
SMESHHOMARD::HOMARD_Iteration_ptr GetIteration (const char* nomIteration);
SMESHHOMARD::listeBoundarys* GetAllBoundarysName(); SMESHHOMARD::listeBoundarys* GetAllBoundarysName();
SMESHHOMARD::listeCases* GetAllCasesName();
SMESHHOMARD::listeHypotheses* GetAllHypothesesName();
SMESHHOMARD::listeIterations* GetAllIterationsName();
void MeshInfo (const char* nomCas, void InvalideBoundary(const char* nomBoundary);
const char* MeshName, const char* FileName, const char* DirName,
CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte);
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 AssociateCaseIter(int numIter, const char* labelIter);
void InvalideBoundary(const char* nomBoundary); char* CreateDirNameIter(const char* nomrep, CORBA::Long num);
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);
CORBA::Long DeleteBoundary(const char* nomBoundary); CORBA::Long Compute();
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 ComputeAdap(SMESHHOMARD::HOMARD_Cas_var myCase, CORBA::Long ComputeAdap(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration, SMESHHOMARD::HOMARD_Iteration_var myIteration,
CORBA::Long etatMenage, SMESHHOMARDImpl::HomardDriver* myDriver, SMESHHOMARDImpl::HomardDriver* myDriver);
CORBA::Long Option1, CORBA::Long Option2);
CORBA::Long ComputeCAO(SMESHHOMARD::HOMARD_Cas_var myCase, CORBA::Long ComputeCAO(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration, SMESHHOMARD::HOMARD_Iteration_var myIteration);
CORBA::Long Option1, CORBA::Long Option2); CORBA::Long ComputeCAObis(SMESHHOMARD::HOMARD_Iteration_var myIteration);
CORBA::Long ComputeCAObis(SMESHHOMARD::HOMARD_Iteration_var myIteration,
CORBA::Long Option1, CORBA::Long Option2);
char* ComputeDirManagement(SMESHHOMARD::HOMARD_Cas_var myCase, char* ComputeDirManagement(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration, SMESHHOMARD::HOMARD_Iteration_var myIteration);
CORBA::Long etatMenage);
char* ComputeDirPaManagement(SMESHHOMARD::HOMARD_Cas_var myCase, char* ComputeDirPaManagement(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARD::HOMARD_Iteration_var myIteration); 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, int DriverTexteBoundary(SMESHHOMARD::HOMARD_Cas_var myCase,
SMESHHOMARDImpl::HomardDriver* myDriver); 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 PythonDump();
void DeleteResultInSmesh(std::string NomFich, std::string MeshName);
void PublishMeshIterInSmesh(const char* NomIter);
// Preferences // Preferences
void SetPreferences(); void SetKeepMedOUT(bool theKeepMedOUT);
void SetLanguageShort(const char* LanguageShort); void SetPublishMeshOUT(bool thePublishMeshOUT);
char* GetLanguageShort(); void SetMeshNameOUT (const char* theMeshNameOUT);
void SetPublisMesh(CORBA::Long PublisMeshIN, CORBA::Long PublisMeshOUT); void SetMeshFileOUT (const char* theMeshFileOUT);
CORBA::Long GetPublisMeshIN();
CORBA::Long GetPublisMeshOUT(); void SetVerboseLevel (CORBA::Long theVerboseLevel);
void SetKeepWorkingFiles(bool theKeepWorkingFiles);
void SetLogInFile(bool theLogInFile);
void SetLogFile (const char* theLogFile);
void SetRemoveLogOnSuccess(bool theRemoveLogOnSuccess);
private: private:
SMESHHOMARD::HOMARD_Boundary_ptr newBoundary(); SMESHHOMARD::HOMARD_Boundary_ptr newBoundary();
SMESHHOMARD::HOMARD_Cas_ptr newCase(); SMESHHOMARD::HOMARD_Cas_ptr newCase();
SMESHHOMARD::HOMARD_Hypothesis_ptr newHypothesis(); SMESHHOMARD::HOMARD_Iteration_ptr newIteration();
SMESHHOMARD::HOMARD_Iteration_ptr newIteration(); void CleanCase();
std::string GetStringInTexte( const std::string Texte, const std::string String, int option );
private: 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; 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 // Preferences
std::string _Langue; bool _KeepMedOUT;
std::string _LangueShort; bool _PublishMeshOUT;
int _PublisMeshIN; bool _KeepWorkingFiles;
int _PublisMeshOUT; 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::vector<double> GetBoundingBoxInMedFile( const char * aFile); SMESH_I_EXPORT std::set<std::string> GetListeGroupesInMedFile(const char * aFile);
SMESH_I_EXPORT std::set<std::string> GetListeGroupesInMedFile(const char * aFile);
}; // namespace SMESHHOMARD_I }; // namespace SMESHHOMARD_I