-// Copyright (C) 2011-2016 CEA/DEN, EDF R&D
+// Copyright (C) 2011-2022 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include "utilities.h"
#include "Basics_Utils.hxx"
+#include "Basics_DirUtils.hxx"
#include "Utils_SINGLETON.hxx"
#include "Utils_CorbaException.hxx"
#include "SALOMEDS_Tool.hxx"
#include "SALOME_LifeCycleCORBA.hxx"
#include "SALOMEconfig.h"
#include <SMESH_Gen_i.hxx>
-#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
-#include CORBA_CLIENT_HEADER(SMESH_Gen)
#include <cmath>
#include <stdlib.h>
PortableServer::POA_ptr poa,
PortableServer::ObjectId * contId,
const char *instanceName,
- const char *interfaceName) :
-Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
+ const char *interfaceName,
+ bool checkNS) :
+Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, checkNS)
{
- MESSAGE("constructor");
+ MESSAGE("constructor de HOMARD_Gen_i");
_thisObj = this;
_id = _poa->activate_object(_thisObj);
- myHomard = new ::HOMARD_Gen();
- _NS = SINGLETON_<SALOME_NamingService>::Instance();
- ASSERT(SINGLETON_<SALOME_NamingService>::IsAlreadyExisting());
- _NS->init_orb(_orb);
-
- myStudy = SALOMEDS::Study::_duplicate( SMESH_Gen_i::getStudyServant() );
+ myHomard = new ::HOMARD_Gen;
_tag_gene = 0 ;
_tag_boun = 0 ;
homardFather = myBuilder->NewComponent(ComponentDataType());
SALOMEDS::GenericAttribute_var anAttr = myBuilder->FindOrCreateAttribute(homardFather,"AttributeName");
SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
- CORBA::Object_var objVarN = _NS->Resolve("/Kernel/ModulCatalog");
- SALOME_ModuleCatalog::ModuleCatalog_var Catalogue =
- SALOME_ModuleCatalog::ModuleCatalog::_narrow(objVarN);
+ SALOME_ModuleCatalog::ModuleCatalog_var Catalogue = this->getModuleCatalog();
SALOME_ModuleCatalog::Acomponent_var Comp = Catalogue->GetComponent(ComponentDataType());
if (!Comp->_is_nil())
{
{
SALOME::ExceptionStruct es;
es.type = SALOME::BAD_PARAM;
- es.text = "This zone is used in an hypothesis and cannot be deleted.";
+ es.text = "This zone is used in a hypothesis and cannot be deleted.";
throw SALOME::SALOME_Exception(es);
return 2 ;
};
//=============================================================================
void HOMARD_Gen_i::MeshInfo(const char* nomCas, const char* MeshName, const char* MeshFile, const char* DirName, CORBA::Long Qual, CORBA::Long Diam, CORBA::Long Conn, CORBA::Long Tail, CORBA::Long Inte)
{
- INFOS ( "MeshInfo : nomCas = " << nomCas << ", MeshName = " << MeshName << ", MeshFile = " << MeshFile );
- INFOS ( "Qual = " << Qual << ", Diam = " << Diam << ", Conn = " << Conn << ", Tail = " << Tail << ", Inte = " << Inte );
+ MESSAGE ( "MeshInfo : nomCas = " << nomCas << ", MeshName = " << MeshName << ", MeshFile = " << MeshFile );
+ MESSAGE ( "Qual = " << Qual << ", Diam = " << Diam << ", Conn = " << Conn << ", Tail = " << Tail << ", Inte = " << Inte );
IsValidStudy () ;
// Creation du cas
// DirNameStart : nom du répertoire contenant l'iteration de reprise
//
{
- INFOS ( "CreateCaseFromIteration : nomCas = " << nomCas << ", DirNameStart = " << DirNameStart );
+ MESSAGE ( "CreateCaseFromIteration : nomCas = " << nomCas << ", DirNameStart = " << DirNameStart );
std::string nomDirWork = getenv("PWD") ;
int codret ;
// DirNameStart : nom du répertoire du cas contenant l'iteration de reprise
//
{
- INFOS ( "CreateCaseFromCaseLastIteration : nomCas = " << nomCas << ", DirNameStart = " << DirNameStart );
+ MESSAGE ( "CreateCaseFromCaseLastIteration : nomCas = " << nomCas << ", DirNameStart = " << DirNameStart );
std::string DirNameStartIter = CreateCase1(DirNameStart, -1) ;
// Number : numero de l'iteration de depart
//
{
- INFOS ( "CreateCaseFromCaseIteration : nomCas = " << nomCas << ", DirNameStart = " << DirNameStart << ", Number = " << Number );
+ MESSAGE ( "CreateCaseFromCaseIteration : nomCas = " << nomCas << ", DirNameStart = " << DirNameStart << ", Number = " << Number );
if ( Number < 0 )
{
SALOME::ExceptionStruct es;
//=============================================================================
HOMARD::HOMARD_Hypothesis_ptr HOMARD_Gen_i::CreateHypothesis(const char* nomHypothesis)
{
- INFOS ( "CreateHypothesis : nomHypothesis = " << nomHypothesis );
+ MESSAGE ( "CreateHypothesis : nomHypothesis = " << nomHypothesis );
IsValidStudy () ;
// A. Controle du nom :
HOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration(const char* NomIteration, const char* nomIterParent)
//=============================================================================
{
- INFOS ("CreateIteration : NomIteration = " << NomIteration << ", nomIterParent = " << nomIterParent);
+ MESSAGE ("CreateIteration : NomIteration = " << NomIteration << ", nomIterParent = " << nomIterParent);
IsValidStudy () ;
HOMARD::HOMARD_Iteration_var myIterationParent = myStudyContext._mesIterations[nomIterParent];
//=============================================================================
HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundaryCAO(const char* BoundaryName, const char* CAOFile)
{
- INFOS ("CreateBoundaryCAO : BoundaryName = " << BoundaryName << ", CAOFile = " << CAOFile );
+ MESSAGE ("CreateBoundaryCAO : BoundaryName = " << BoundaryName << ", CAOFile = " << CAOFile );
HOMARD::HOMARD_Boundary_var myBoundary = CreateBoundary(BoundaryName, -1);
myBoundary->SetDataFile( CAOFile ) ;
//=============================================================================
HOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundaryDi(const char* BoundaryName, const char* MeshName, const char* MeshFile)
{
- INFOS ("CreateBoundaryDi : BoundaryName = " << BoundaryName << ", MeshName = " << MeshName << ", MeshFile = " << MeshFile );
+ MESSAGE ("CreateBoundaryDi : BoundaryName = " << BoundaryName << ", MeshName = " << MeshName << ", MeshFile = " << MeshFile );
HOMARD::HOMARD_Boundary_var myBoundary = CreateBoundary(BoundaryName, 0);
myBoundary->SetDataFile( MeshFile ) ;
myBoundary->SetMeshName( MeshName ) ;
CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
CORBA::Double Rayon)
{
- INFOS ("CreateBoundaryCylinder : BoundaryName = " << BoundaryName ) ;
+ MESSAGE ("CreateBoundaryCylinder : BoundaryName = " << BoundaryName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre,
CORBA::Double Rayon)
{
- INFOS ("CreateBoundarySphere : BoundaryName = " << BoundaryName ) ;
+ MESSAGE ("CreateBoundarySphere : BoundaryName = " << BoundaryName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe, CORBA::Double Angle,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre)
{
- INFOS ("CreateBoundaryConeA : BoundaryName = " << BoundaryName ) ;
+ MESSAGE ("CreateBoundaryConeA : BoundaryName = " << BoundaryName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Xcentre1, CORBA::Double Ycentre1, CORBA::Double Zcentre1, CORBA::Double Rayon1,
CORBA::Double Xcentre2, CORBA::Double Ycentre2, CORBA::Double Zcentre2, CORBA::Double Rayon2)
{
- INFOS ("CreateBoundaryConeR : BoundaryName = " << BoundaryName ) ;
+ MESSAGE ("CreateBoundaryConeR : BoundaryName = " << BoundaryName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
CORBA::Double RayonRev, CORBA::Double RayonPri)
{
- INFOS ("CreateBoundaryTorus : BoundaryName = " << BoundaryName ) ;
+ MESSAGE ("CreateBoundaryTorus : BoundaryName = " << BoundaryName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Ymini, CORBA::Double Ymaxi,
CORBA::Double Zmini, CORBA::Double Zmaxi)
{
- INFOS ("CreateZoneBox : ZoneName = " << ZoneName ) ;
+ MESSAGE ("CreateZoneBox : ZoneName = " << ZoneName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
HOMARD::HOMARD_Zone_ptr HOMARD_Gen_i::CreateZoneSphere(const char* ZoneName,
CORBA::Double Xcentre, CORBA::Double Ycentre, CORBA::Double Zcentre, CORBA::Double Rayon)
{
- INFOS ("CreateZoneSphere : ZoneName = " << ZoneName ) ;
+ MESSAGE ("CreateZoneSphere : ZoneName = " << ZoneName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
CORBA::Double Rayon, CORBA::Double Haut)
{
- INFOS ("CreateZoneCylinder : ZoneName = " << ZoneName ) ;
+ MESSAGE ("CreateZoneCylinder : ZoneName = " << ZoneName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Xaxe, CORBA::Double Yaxe, CORBA::Double Zaxe,
CORBA::Double Rayon, CORBA::Double Haut, CORBA::Double Rayonint)
{
- INFOS ("CreateZonePipe : ZoneName = " << ZoneName ) ;
+ MESSAGE ("CreateZonePipe : ZoneName = " << ZoneName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Vmini, CORBA::Double Vmaxi,
CORBA::Long Orient)
{
- INFOS ("CreateZoneBox2D : ZoneName = " << ZoneName ) ;
+ MESSAGE ("CreateZoneBox2D : ZoneName = " << ZoneName ) ;
// MESSAGE ("Umini = " << Umini << ", Umaxi =" << Umaxi ) ;
// MESSAGE ("Vmini = " << Vmini << ", Vmaxi =" << Vmaxi ) ;
// MESSAGE ("Orient = " << Orient ) ;
CORBA::Double Rayon,
CORBA::Long Orient)
{
- INFOS ("CreateZoneDisk : ZoneName = " << ZoneName ) ;
+ MESSAGE ("CreateZoneDisk : ZoneName = " << ZoneName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
CORBA::Double Rayon, CORBA::Double Rayonint,
CORBA::Long Orient)
{
- INFOS ("CreateZoneDiskWithHole : ZoneName = " << ZoneName ) ;
+ MESSAGE ("CreateZoneDiskWithHole : ZoneName = " << ZoneName ) ;
//
SALOME::ExceptionStruct es;
int error = 0 ;
{
if ( ( modeHOMARD == 1 ) && ( BoundaryOption % 5 == 0 ) && (codretexec == 0) )
{
- INFOS ( "Suivi de frontière CAO" );
+ MESSAGE ( "Suivi de frontière CAO" );
codret = ComputeCAO(myCase, myIteration, Option1, Option2) ;
}
}
std::string value ;
switch (BoundaryType)
{
+ case -1 :
+ { value = "BoundaryCAOHomard" ;
+ icone = "geometry.png" ;
+ break;
+ }
case 0 :
{ value = "BoundaryDiHomard" ;
icone = "mesh_tree_mesh.png" ;
// On enregistre le fichier
MESSAGE( "Enregistrement du fichier");
- SALOME_LifeCycleCORBA* myLCC = new SALOME_LifeCycleCORBA(_NS);
- SMESH::SMESH_Gen_var aSmeshEngine = SMESH::SMESH_Gen::_narrow(myLCC->FindOrLoad_Component("FactoryServer","SMESH"));
+ //
+ SMESH::SMESH_Gen_var aSmeshEngine = this->retrieveSMESHInst();
+ //
ASSERT(!CORBA::is_nil(aSmeshEngine));
aSmeshEngine->UpdateStudy();
SMESH::DriverMED_ReadStatus theStatus;
//=============================================================================
HOMARD::HOMARD_YACS_ptr HOMARD_Gen_i::CreateYACSSchema (const char* nomYACS, const char* nomCas, const char* ScriptFile, const char* DirName, const char* MeshFile)
{
- INFOS ( "CreateYACSSchema : Schema YACS " << nomYACS );
- INFOS ( ". nomCas : " << nomCas);
- INFOS ( ". ScriptFile : " << ScriptFile);
- INFOS ( ". DirName : " << DirName);
- INFOS ( ". MeshFile : " << MeshFile);
+ MESSAGE ( "CreateYACSSchema : Schema YACS " << nomYACS );
+ MESSAGE ( ". nomCas : " << nomCas);
+ MESSAGE ( ". ScriptFile : " << ScriptFile);
+ MESSAGE ( ". DirName : " << DirName);
+ MESSAGE ( ". MeshFile : " << MeshFile);
// A. Controle du nom :
if ((myStudyContext._mesYACSs).find(nomYACS) != (myStudyContext._mesYACSs).end())
//=============================================================================
CORBA::Long HOMARD_Gen_i::YACSWrite(const char* nomYACS)
{
- INFOS ( "YACSWrite : Ecriture de " << nomYACS );
+ MESSAGE ( "YACSWrite : Ecriture de " << nomYACS );
// Le répertoire du cas
HOMARD::HOMARD_YACS_var myYACS = myStudyContext._mesYACSs[nomYACS];
ASSERT(!CORBA::is_nil(myYACS));
//=============================================================================
CORBA::Long HOMARD_Gen_i::YACSWriteOnFile(const char* nomYACS, const char* XMLFile)
{
- INFOS ( "YACSWriteOnFile : Ecriture de " << nomYACS << " sur " << XMLFile );
+ MESSAGE ( "YACSWriteOnFile : Ecriture de " << nomYACS << " sur " << XMLFile );
// A. Prealable
int codret = 0;
MESSAGE("XMLFile_base ="<<XMLFile_base);
// G. Lecture du schema de reference et insertion des données propres au fil de la rencontre des mots-cles
- YACSDriver* myDriver = new YACSDriver(XMLFile, DirName);
+ YACSDriver* myDriver = new YACSDriver(XMLFile, DirName, _LangueShort);
std::ifstream fichier( XMLFile_base.c_str() );
if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
{
else if ( mot_cle == "HOMARD_Exec_MeshName" )
{
myDriver->Texte_HOMARD_Exec_MeshName(MeshName);
- std::string node = "Boucle_de_convergence.Alternance_Calcul_HOMARD.Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateCase" ;
+ std::string node ;
+ if ( _LangueShort == "fr" ) { node = "Boucle_de_convergence.Alternance_Calcul_HOMARD" ; }
+ else { node = "Convergence_Loop.Alternation_Computation_HOMARD" ; }
+ node += ".Adaptation.p0_Adaptation_HOMARD.HOMARD_Initialisation.p1_Iter_1.CreateCase" ;
myDriver->TexteParametre( node, "MeshName", "string", MeshName ) ;
}
// G.1.7. Execution de HOMARD : les options de l'hypothese
// HOMARD data file name
std::string aFileName = "";
if (isMultiFile)
- aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(SMESH_Gen_i::getStudyServant()->URL()));
+ aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(myStudy->URL()));
aFileName += "_HOMARD.dat";
// initialize sequence of file names
// HOMARD data file name
std::string aFileName = "";
if (isMultiFile)
- aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(SMESH_Gen_i::getStudyServant()->URL()));
+ aFileName = SALOMEDS_Tool::GetNameFromPath(Kernel_Utils::encode(myStudy->URL()));
aFileName = tmpDir + aFileName + "_HOMARD.dat";
StudyContext& context = myStudyContext;
MESSAGE ("Entree dans DumpPython");
isValidScript=1;
- SALOMEDS::SObject_var aSO = SMESH_Gen_i::getStudyServant()->FindComponent("HOMARD");
+ SALOMEDS::SObject_var aSO = myStudy->FindComponent("HOMARD");
if(CORBA::is_nil(aSO))
return new Engines::TMPFile(0);
void HOMARD_Gen_i::IsValidStudy( )
{
// MESSAGE( "IsValidStudy" );
- if (CORBA::is_nil(SMESH_Gen_i::getStudyServant()))
+ if (CORBA::is_nil(myStudy))
{
SALOME::ExceptionStruct es;
es.type = SALOME::BAD_PARAM;
if ( ok )
{
std::string PrefFile ;
- PrefFile = getenv("HOME") ;
+ PrefFile = Kernel_Utils::HomePath() ;
PrefFile += "/.config/salome/SalomeApprc." + salome_version ;
MESSAGE ( "PrefFile = "<<PrefFile ) ;
return _YACSTypeTest ;
}
-//=============================================================================
-extern "C"
-{
- HOMARDENGINE_EXPORT
- PortableServer::ObjectId* HOMARDEngine_factory(CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- PortableServer::ObjectId* contId,
- const char* instanceName,
- const char* interfaceName)
- {
- MESSAGE("PortableServer::ObjectId* HOMARDEngine_factory()");
- HOMARD_Gen_i* myHOMARD_Gen = new HOMARD_Gen_i(orb, poa, contId, instanceName, interfaceName);
- return myHOMARD_Gen->getId();
- }
-}