Padder : write new parameters in DataFile

This commit is contained in:
uhz 2017-03-09 16:46:31 +01:00
parent 55290963c7
commit d8428a892b
4 changed files with 36 additions and 6 deletions

View File

@ -72,6 +72,16 @@ module MESHJOB
// This defines a set of parameters for the job initialization
typedef sequence<MESHJOB::MeshJobFile> MeshJobFileList;
// This defines a single parameter for the job initialization
struct MeshJobParameter
{
string name;
string value;
};
// This defines a set of parameters for the job initialization
typedef sequence<MESHJOB::MeshJobParameter> MeshJobParameterList;
// This defines the result data of a job
struct MeshJobResults
{
@ -97,7 +107,9 @@ module MESHJOB
raises (SALOME::SALOME_Exception);
/*! Initialize a smesh computation job and return the job identifier */
long initialize(in MESHJOB::MeshJobFileList meshJobFileList, in string configId)
long initialize(in MESHJOB::MeshJobFileList meshJobFileList,
in MESHJOB::MeshJobParameterList MeshJobParameterList,
in string configId)
raises (SALOME::SALOME_Exception);
/*! Submit the job execution and return true if submission is OK */

View File

@ -168,7 +168,8 @@ static std::string REMOTE_WORKDIR("/tmp/spadder.remote.workdir."+USER);
* <outputMedFile>
*/
const char * MeshJobManager_i::_writeDataFile(std::vector<MESHJOB::MeshJobFile> listConcreteMesh,
std::vector<MESHJOB::MeshJobFile> listSteelBarMesh) {
std::vector<MESHJOB::MeshJobFile> listSteelBarMesh,
const MESHJOB::MeshJobParameterList & meshJobParameterList) {
#ifdef WIN32
_mkdir(LOCAL_INPUTDIR.c_str());
#else
@ -212,9 +213,17 @@ const char * MeshJobManager_i::_writeDataFile(std::vector<MESHJOB::MeshJobFile>
dataFile << line.c_str() << std::endl;
}
// Finally, we conclude with the name of the output file
// We conclude the list of files with the name of the output file
line = OUTPUTFILE;
dataFile << line.c_str() << std::endl;
// We put the numerical parameters at the end of the data file
for(CORBA::ULong i=0; i<meshJobParameterList.length(); i++) {
MESHJOB::MeshJobParameter param = meshJobParameterList[i];
line = std::string(param.name) + " " + std::string(param.value);
dataFile << line.c_str() << std::endl;
}
dataFile.close();
return dataFilename->c_str();
}
@ -282,6 +291,7 @@ long MeshJobManager_i::JOBID_UNDEFINED = -1;
/*! Initialize a smesh computation job and return the job identifier */
CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobFileList & meshJobFileList,
const MESHJOB::MeshJobParameterList & meshJobParameterList,
const char * configId)
{
beginService("MeshJobManager_i::initialize");
@ -340,7 +350,7 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobFileList & meshJo
// data is a text file containing the list of file names and group
// names.
//
const char * dataFilename = this->_writeDataFile(listConcreteMesh, listSteelBarMesh);
const char * dataFilename = this->_writeDataFile(listConcreteMesh, listSteelBarMesh, meshJobParameterList);
LOG("dataFilename = " << dataFilename);
const char * scriptFilename = this->_writeScriptFile(dataFilename, configId);
LOG("scriptFilename = " << scriptFilename);

View File

@ -56,6 +56,7 @@ public:
bool configure (const char *configId,
const MESHJOB::ConfigParameter & configParameter);
CORBA::Long initialize (const MESHJOB::MeshJobFileList & meshJobFileList,
const MESHJOB::MeshJobParameterList & meshJobParameterList,
const char *configId);
bool start (CORBA::Long jobId);
char* getState (CORBA::Long jobId);
@ -84,7 +85,8 @@ private:
std::map<long, MESHJOB::MeshJobPaths*> _jobPathsMap;
const char* _writeDataFile (std::vector<MESHJOB::MeshJobFile> listConcreteMesh,
std::vector<MESHJOB::MeshJobFile> listSteelBarMesh);
std::vector<MESHJOB::MeshJobFile> listSteelBarMesh,
const MESHJOB::MeshJobParameterList & meshJobParameterList);
const char* _writeScriptFile (const char * dataFileName, const char * configId);
std::vector<std::string> * _getResourceNames();

View File

@ -160,10 +160,16 @@ def test03_parameters():
#meshJobFileList = test02_parameters()
meshJobFileList = test03_parameters()
meshJobParameterList = []
param = MESHJOB.MeshJobParameter(name="RminRmax",value="1.5")
meshJobParameterList.append(param)
param = MESHJOB.MeshJobParameter(name="NbIteration",value="3")
meshJobParameterList.append(param)
#
# Prepare, start and follow-up the job
#
jobid = component.initialize(meshJobFileList, configId)
jobid = component.initialize(meshJobFileList, meshJobParameterList, configId)
if jobid<0:
msg = component.getLastErrorMessage()
print "ERR: %s"%msg