mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-15 10:08:34 +05:00
Prepare the fix of padder plugin for the usecases defined by SpherePadder tests
This commit is contained in:
parent
431b3cc6de
commit
a6bc2b5a1c
@ -270,14 +270,21 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & m
|
|||||||
listSteelBarMesh.push_back(currentMesh);
|
listSteelBarMesh.push_back(currentMesh);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOG("The type of the file is not recognized");
|
_lastErrorMessage =
|
||||||
|
std::string("The type of the file ")+
|
||||||
|
std::string(currentMesh.file_name)+
|
||||||
|
std::string(" is not recognized");
|
||||||
|
LOG(_lastErrorMessage);
|
||||||
return JOBID_UNDEFINED;
|
return JOBID_UNDEFINED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( listConcreteMesh.size() != 1 ) {
|
// It is not possible to specify more than one concrete
|
||||||
|
// file. Converselly, it is possible to specify no concrete file.
|
||||||
|
if ( listConcreteMesh.size() > 1 ) {
|
||||||
// Not consistent with the specification
|
// Not consistent with the specification
|
||||||
LOG("You specify more than one concrete mesh");
|
_lastErrorMessage = std::string("You specify more than one concrete mesh (not authorized)");
|
||||||
|
LOG(_lastErrorMessage);
|
||||||
return JOBID_UNDEFINED;
|
return JOBID_UNDEFINED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,10 +31,24 @@ def getRootDir():
|
|||||||
|
|
||||||
def getTestDataDir():
|
def getTestDataDir():
|
||||||
'''
|
'''
|
||||||
This function gives the absolute path to the directory containing
|
This function gives the absolute path to the SMESH directory
|
||||||
the data files for test (realistic med files).
|
containing the data files for the padder plugin test (realistic
|
||||||
|
med files).
|
||||||
'''
|
'''
|
||||||
datadir=os.path.join(getRootDir(),"share/salome/resources/smesh/padderexe")
|
datadir = os.path.join(getRootDir(),"share/salome/resources/smesh/padderdata")
|
||||||
|
return datadir
|
||||||
|
|
||||||
|
def getTestPadderDataDir():
|
||||||
|
"""
|
||||||
|
This function gives the absolute path to the PADDER directory
|
||||||
|
containing the data files for the padder plugin test. WARNING:
|
||||||
|
this directory is a directory of the external program SpherePadder
|
||||||
|
that is wrapped by the padder plugin. We use the shell variable
|
||||||
|
PADDERHOME (defined by the SALOME environment) to localize this
|
||||||
|
folder.
|
||||||
|
"""
|
||||||
|
PADDERHOME = os.environ['PADDERHOME']
|
||||||
|
datadir = os.path.join(PADDERHOME,"tests")
|
||||||
return datadir
|
return datadir
|
||||||
|
|
||||||
import MESHJOB # to get the enum constant values
|
import MESHJOB # to get the enum constant values
|
||||||
|
@ -23,11 +23,12 @@
|
|||||||
# This script illustrates the standard use case of the component
|
# This script illustrates the standard use case of the component
|
||||||
# MeshJobManager from within a SALOME script.
|
# MeshJobManager from within a SALOME script.
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Preparing the configuration parameters
|
# Preparing the configuration parameters
|
||||||
#
|
#
|
||||||
|
import sys
|
||||||
import os
|
import os
|
||||||
|
import time
|
||||||
from salome.smesh.spadder.configreader import ConfigReader, printConfig
|
from salome.smesh.spadder.configreader import ConfigReader, printConfig
|
||||||
|
|
||||||
configReader = ConfigReader()
|
configReader = ConfigReader()
|
||||||
@ -35,15 +36,13 @@ defaultConfig = configReader.getDefaultConfig()
|
|||||||
printConfig(defaultConfig)
|
printConfig(defaultConfig)
|
||||||
|
|
||||||
from salome.smesh import spadder
|
from salome.smesh import spadder
|
||||||
file_concrete=os.path.join(spadder.getTestDataDir(),"concrete.med")
|
|
||||||
file_steelbar=os.path.join(spadder.getTestDataDir(),"ferraill.med")
|
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
import MESHJOB
|
import MESHJOB
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setup the configuration in the component. When first have to load
|
# Setup the configuration in the component. We first have to load the
|
||||||
# the catalog of SPADDER components, then load the component
|
# catalog of SPADDER components, then load the component
|
||||||
# MeshJobManager, and finally configure this component.
|
# MeshJobManager, and finally configure this component.
|
||||||
#
|
#
|
||||||
spadder.loadSpadderCatalog()
|
spadder.loadSpadderCatalog()
|
||||||
@ -53,27 +52,118 @@ component = salome.lcc.FindOrLoadComponent("FactoryServer","MeshJobManager")
|
|||||||
config = MESHJOB.ConfigParameter(resname=defaultConfig.resname,
|
config = MESHJOB.ConfigParameter(resname=defaultConfig.resname,
|
||||||
binpath=defaultConfig.binpath,
|
binpath=defaultConfig.binpath,
|
||||||
envpath=defaultConfig.envpath)
|
envpath=defaultConfig.envpath)
|
||||||
component.configure("localhost",config)
|
|
||||||
|
configId = "localhost"
|
||||||
|
component.configure(configId,config)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Prepare the job parameters and initialize the job
|
# Prepare the job parameters and initialize the job
|
||||||
#
|
#
|
||||||
meshJobParameterList = []
|
def test00_parameters():
|
||||||
param = MESHJOB.MeshJobParameter(file_name=file_concrete,
|
"""Test using a concrete mesh and a single steelbar mesh"""
|
||||||
file_type=MESHJOB.MED_CONCRETE,
|
file_concrete=os.path.join(spadder.getTestDataDir(),"concrete.med")
|
||||||
group_name="concrete")
|
file_steelbar=os.path.join(spadder.getTestDataDir(),"ferraill.med")
|
||||||
meshJobParameterList.append(param)
|
|
||||||
|
|
||||||
param = MESHJOB.MeshJobParameter(file_name=file_steelbar,
|
meshJobParameterList = []
|
||||||
file_type=MESHJOB.MED_STEELBAR,
|
param = MESHJOB.MeshJobParameter(file_name=file_concrete,
|
||||||
group_name="steelbar")
|
file_type=MESHJOB.MED_CONCRETE,
|
||||||
meshJobParameterList.append(param)
|
group_name="concrete")
|
||||||
jobid = component.initialize(meshJobParameterList, "localhost")
|
meshJobParameterList.append(param)
|
||||||
|
|
||||||
|
param = MESHJOB.MeshJobParameter(file_name=file_steelbar,
|
||||||
|
file_type=MESHJOB.MED_STEELBAR,
|
||||||
|
group_name="steelbar")
|
||||||
|
meshJobParameterList.append(param)
|
||||||
|
return meshJobParameterList
|
||||||
|
|
||||||
|
def test01_parameters():
|
||||||
|
"""One concrete mesh and two steelbar meshes"""
|
||||||
|
datadir = os.path.join(spadder.getTestPadderDataDir(),"test01")
|
||||||
|
meshJobParameterList = []
|
||||||
|
|
||||||
|
medfile = os.path.join(datadir,"concrete.med")
|
||||||
|
param = MESHJOB.MeshJobParameter(file_name=medfile,
|
||||||
|
file_type=MESHJOB.MED_CONCRETE,
|
||||||
|
group_name="concrete")
|
||||||
|
meshJobParameterList.append(param)
|
||||||
|
|
||||||
|
medfile = os.path.join(datadir,"ferraill.med")
|
||||||
|
param = MESHJOB.MeshJobParameter(file_name=medfile,
|
||||||
|
file_type=MESHJOB.MED_STEELBAR,
|
||||||
|
group_name="ferraill")
|
||||||
|
meshJobParameterList.append(param)
|
||||||
|
|
||||||
|
medfile = os.path.join(datadir,"ferrtran.med")
|
||||||
|
param = MESHJOB.MeshJobParameter(file_name=medfile,
|
||||||
|
file_type=MESHJOB.MED_STEELBAR,
|
||||||
|
group_name="ferrtran")
|
||||||
|
meshJobParameterList.append(param)
|
||||||
|
|
||||||
|
return meshJobParameterList
|
||||||
|
|
||||||
|
def test02_parameters():
|
||||||
|
"""One steelbar mesh only, without a concrete mesh"""
|
||||||
|
datadir = os.path.join(spadder.getTestPadderDataDir(),"test02")
|
||||||
|
meshJobParameterList = []
|
||||||
|
|
||||||
|
medfile = os.path.join(datadir,"cadreef.med")
|
||||||
|
param = MESHJOB.MeshJobParameter(file_name=medfile,
|
||||||
|
file_type=MESHJOB.MED_STEELBAR,
|
||||||
|
group_name="cadre")
|
||||||
|
meshJobParameterList.append(param)
|
||||||
|
return meshJobParameterList
|
||||||
|
|
||||||
|
def test03_parameters():
|
||||||
|
"""One concrete mesh only, without a steelbar mesh"""
|
||||||
|
datadir = os.path.join(spadder.getTestPadderDataDir(),"test03")
|
||||||
|
meshJobParameterList = []
|
||||||
|
|
||||||
|
medfile = os.path.join(datadir,"concrete.med")
|
||||||
|
param = MESHJOB.MeshJobParameter(file_name=medfile,
|
||||||
|
file_type=MESHJOB.MED_CONCRETE,
|
||||||
|
group_name="concrete")
|
||||||
|
meshJobParameterList.append(param)
|
||||||
|
return meshJobParameterList
|
||||||
|
|
||||||
|
#
|
||||||
|
# Choose here the use case
|
||||||
|
#
|
||||||
|
|
||||||
|
#meshJobParameterList = test00_parameters()
|
||||||
|
#meshJobParameterList = test01_parameters()
|
||||||
|
meshJobParameterList = test02_parameters()
|
||||||
|
#meshJobParameterList = test03_parameters()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Prepare, start and follow-up the job
|
||||||
|
#
|
||||||
|
jobid = component.initialize(meshJobParameterList, configId)
|
||||||
|
if jobid<0:
|
||||||
|
msg = component.getLastErrorMessage()
|
||||||
|
print "ERR: %s"%msg
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
created = False
|
||||||
|
nbiter = 0
|
||||||
|
while not created:
|
||||||
|
state = component.getState(jobid)
|
||||||
|
print "MeshJobManager ["+str(nbiter)+"] : state = "+str(state)
|
||||||
|
if state == "CREATED":
|
||||||
|
created = True
|
||||||
|
time.sleep(0.5)
|
||||||
|
nbiter+=1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Start the execution of the job identified by its job id.
|
# Start the execution of the job identified by its job id.
|
||||||
#
|
#
|
||||||
ok=component.start(jobid)
|
ok=component.start(jobid)
|
||||||
|
if not ok:
|
||||||
|
msg = component.getLastErrorMessage()
|
||||||
|
print "ERR: %s"%msg
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
print "job started: %s"%ok
|
||||||
|
|
||||||
#
|
#
|
||||||
# This part illustrates how you can follow the execution of the job.
|
# This part illustrates how you can follow the execution of the job.
|
||||||
@ -84,7 +174,6 @@ all_states = run_states+end_states;
|
|||||||
|
|
||||||
ended = False
|
ended = False
|
||||||
nbiter = 0
|
nbiter = 0
|
||||||
import time
|
|
||||||
while not ended:
|
while not ended:
|
||||||
state = component.getState(jobid)
|
state = component.getState(jobid)
|
||||||
print "MeshJobManager ["+str(nbiter)+"] : state = "+str(state)
|
print "MeshJobManager ["+str(nbiter)+"] : state = "+str(state)
|
||||||
@ -95,6 +184,8 @@ while not ended:
|
|||||||
|
|
||||||
if state not in end_states:
|
if state not in end_states:
|
||||||
print "ERR: jobid = "+str(jobid)+" ended abnormally with state="+str(state)
|
print "ERR: jobid = "+str(jobid)+" ended abnormally with state="+str(state)
|
||||||
|
msg = component.getLastErrorMessage()
|
||||||
|
print "ERR: %s"%msg
|
||||||
else:
|
else:
|
||||||
print "OK: jobid = "+str(jobid)+" ended with state="+str(state)
|
print "OK: jobid = "+str(jobid)+" ended with state="+str(state)
|
||||||
meshJobResults = component.finalize(jobid)
|
meshJobResults = component.finalize(jobid)
|
||||||
|
Loading…
Reference in New Issue
Block a user