Skip to content
Snippets Groups Projects
Commit 093c5b51 authored by Francois Henrotte's avatar Francois Henrotte
Browse files

interfaced onelab client

parent 32ce010e
No related branches found
No related tags found
No related merge requests found
......@@ -2,21 +2,18 @@
#include "elasticitySolver.h"
#include "PView.h"
#include "PViewData.h"
#include "onelab.h"
onelab::remoteNetworkClient *_onelabClient = 0;
void Info (int i, char* c){
printf("%d %s\n",i,c);
}
void InitializeOnelab(const char * socket, std::string &modName) {
_onelabClient =
new onelab::remoteNetworkClient("ElasticSolver", socket );
/*
void InitializeOnelab(std::string sockName, std::string modelName) {
if (!sockName.size()) return;
loader = new onelab::remoteNetworkClient("loader", sockName);
std::vector<std::string> choices;
std::vector<onelab::string> ps;
_onelabClient->get(ps,"Elasticity/9Compute");
loader->get(ps,"Elasticity/9Compute"); // ??
ps.resize(1);
ps[0].setName("Elasticity/9Compute");
ps[0].setValue("-solve -pos");
......@@ -24,17 +21,18 @@ void InitializeOnelab(const char * socket, std::string &modName) {
choices.push_back("-pos");
choices.push_back("-solve");
ps[0].setChoices(choices);
_onelabClient->set(ps[0]);
loader->set(ps[0]);
ps.resize(1);
ps[0].setName("Elasticity/1ModelName");
ps[0].setValue(modName);
_onelabClient->set(ps[0]);
ps[0].setValue(modelName);
loader->set(ps[0]);
}
/*
void AddOnelabNumberChoice(std::string name, double val, std::string help)
{
std::vector<double> choices;
std::vector<onelab::number> ps;
_onelabClient->get(ps, name);
loader->get(ps, name);
if(ps.size()){
choices = ps[0].getChoices();
}
......@@ -47,10 +45,10 @@ void AddOnelabNumberChoice(std::string name, double val, std::string help)
ps[0].setChoices(choices);
ps[0].setHelp(help);
ps[0].setShortHelp(help);
_onelabClient->set(ps[0]);
loader->set(ps[0]);
}
void GetSetMaterials (elasticitySolver &e) {
void AddOnelabMaterials (elasticitySolver &e) {
std::vector<onelab::number> ps;
for (int i=0;i<e.elasticFields.size();i++){
......@@ -72,25 +70,40 @@ void GetSetLoads (elasticitySolver &e) {
void GetSetFixations (elasticitySolver &e) {
// todo
}
*/
void WhatToDoNow(int argc, char *argv[], int &solve, std::string &modName)
void WhatToDoNow(int argc, char *argv[], int &solve, std::string &modelName)
{
int i = 1;
solve = 0;
solve = 1;
std::string sockName = "";
while (i < argc) {
if (argv[i][0] == '-') {
if (!strcmp(argv[i]+1, "onelab")) {
if (!strcmp(argv[i]+1, "solve") ||
!strcmp(argv[i]+1, "-solve")) {
solve = 1;
i++;
if (i<argc && argv[i][0]!='-') {
printf("INITIALIZINK SOCKET %s\n",argv[i]);
InitializeOnelab(argv[i],modName); i++;
}
else {
printf("Error : Missing address of onelab server");
else if (!strcmp(argv[i]+1, "pos") ||
!strcmp(argv[i]+1, "-pos")) {
i++;
}
// else if (!strcmp(argv[i]+1, "onelab")) {
// i++;
// if (i<argc && argv[i][0]!='-') {
// printf("INITIALIZING SOCKET %s\n",argv[i]);
// sockName=argv[i];
// InitializeOnelab(sockName,modelName); i++;
// }
// else {
// printf("Error : Missing address of onelab server");
// }
// }
else if (!strcmp(argv[i]+1, "a")) {
i++;
exit(1);
}
else if (!strcmp(argv[i]+1, "help") || !strcmp(argv[i]+1, "h") ||
!strcmp(argv[i]+1, "-help") || !strcmp(argv[i]+1, "-h")) {
i++;
......@@ -102,36 +115,22 @@ void WhatToDoNow(int argc, char *argv[], int &solve, std::string &modName)
i++;
Info(1, argv[0]);
}
else if (!strcmp(argv[i]+1, "info") ||
!strcmp(argv[i]+1, "-info")) {
i++;
Info(2, argv[0]);
}
else if (!strcmp(argv[i]+1, "solve") ||
!strcmp(argv[i]+1, "-solve")) {
solve = 1;
i++;
}
else if (!strcmp(argv[i]+1, "pos") ||
!strcmp(argv[i]+1, "-pos")) {
i++;
}
}
else {
modName = std::string(argv[i]);
// if (modName)
// modName = modName + std::string(".fuk");
std::vector<onelab::string> ps;
modelName = std::string(argv[i]);
// if (modelName)
// modelName = modelName + std::string(".fuk");
i++;
}
}
}
int main (int argc, char* argv[]){
char* a[10];
char name[245];
a[0] = name;
......@@ -149,9 +148,8 @@ int main (int argc, char* argv[]){
elasticitySolver mySolver (1000);
mySolver.setMesh(std::string(pn+".msh").c_str());
_onelabClient->sendMergeFileRequest(pn+".msh");
mySolver.readInputFile(std::string(pn+".dat").c_str());
GetSetMaterials (mySolver);
if (solve){
mySolver.solve();
PView *pvm = mySolver.buildVonMisesView("vonMises");
......@@ -159,18 +157,11 @@ int main (int argc, char* argv[]){
// pv->getData()->writeMSH("disp.msh", false, false);
pv->getData()->writePOS("disp.pos");
pvm->getData()->writePOS("vonMises.pos");
_onelabClient->sendMergeFileRequest("disp.pos");
_onelabClient->sendMergeFileRequest("vonMises.pos");
delete pv;
}
//GmshFinalize();
if (_onelabClient) delete _onelabClient;
return 0;
// solve the problem
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment