nglibs-cfd
Version:
NGLibs, The module for CFD field Loading for OpenFOAM.
103 lines (102 loc) • 4.47 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const CFDOpenFoam_1 = require("./CFDOpenFoam");
const axios_1 = __importDefault(require("axios"));
class CFDOpenFoamLoader {
url;
userName;
caseID;
routes = `routes/`;
cmdGetTimesAtt = "/timeAndAttributes";
;
cmdGetConst = "/constData";
cmdGetContent = "/outputData";
constructor(url) {
this.url = url;
}
;
buildPath(cmd) {
let { routes, userName, caseID } = this;
return routes + userName + `/` + caseID + cmd;
}
StartLoadAttrbuteCall(attr, timeClipCall, prog) {
try {
CFDOpenFoam_1.CFDOpenFoam.Instance().cellProperties[attr];
}
catch (err) {
console.debug(`${attr} not wthin OpenFoam content properties`);
}
let { url, cmdGetContent } = this;
url.pathname = this.buildPath(cmdGetContent);
return new Promise((sol, rej) => {
console.debug(`Start Download: ${attr}...`);
let prolist = [];
let timeout = 0;
let timegap = 300;
let timeindex = 0;
url.searchParams.set(attr, 'true');
CFDOpenFoam_1.CFDOpenFoam.Instance().cellsContentTimeStepArray.forEach(TimeClip => {
prolist.push(new Promise((isol) => {
setTimeout(() => {
let curtmeindex = timeindex;
timeindex++;
url.searchParams.set('timeIndex', curtmeindex.toString());
console.debug(`Start ${attr} download...., timeindex: ${curtmeindex}`);
axios_1.default.get(url.href).then(result => {
console.debug(`${attr} done! timeindex: ${curtmeindex}`);
timeClipCall(result.data[attr], attr, TimeClip);
if (prog)
prog(1);
isol(result);
});
}, timeout);
timeout += timegap;
}));
});
Promise.all(prolist).then(val => {
url.searchParams.set(attr, 'false');
console.debug(`${attr} download complete: ${timeindex}`);
sol(CFDOpenFoam_1.CFDOpenFoam.Instance());
});
});
}
StartLoadInitConstInfo(prog) {
let { url, cmdGetTimesAtt, cmdGetConst } = this;
return new Promise((sol, rej) => {
console.debug('Start Download TimesAtts/Const....');
let prosList = [];
url.pathname = this.buildPath(cmdGetTimesAtt);
prosList.push(axios_1.default.get(url.href, {
// onDownloadProgress: p => {
// let percent = (p.loaded / p.total);
// progressbar.value = percent * 50;
// console.debug(`loading vel: ${percent}`);
// }
}).then(result => {
console.debug('download Time Attributd completed!');
console.debug(result.data, toString);
prog(1);
return CFDOpenFoam_1.CFDOpenFoam.Instance().ParserInitJSON(result.data);
}));
url.pathname = this.buildPath(cmdGetConst);
prosList.push(axios_1.default.get(url.href).then(result => {
console.debug('download Const completed!');
console.debug(result.data, toString);
prog(1);
return CFDOpenFoam_1.CFDOpenFoam.Instance().ParserConstantJSON(result.data);
}));
Promise.all(prosList).then(val => { sol(CFDOpenFoam_1.CFDOpenFoam.Instance()); });
});
}
StartLoadAttrbute(attr, prog) {
return this.StartLoadAttrbuteCall(attr, (res, attrs, tclip) => CFDOpenFoam_1.CFDOpenFoam.Instance().ParserOutPutScaleContentJSON(res, attrs, tclip), prog);
}
StartLoadVel(prog) {
let attr = 'velocity';
return this.StartLoadAttrbuteCall(attr, (res, attrs, tclip) => CFDOpenFoam_1.CFDOpenFoam.Instance().ParserOutPutVelContentJSON(res, attrs, tclip), prog);
}
}
exports.default = CFDOpenFoamLoader;