UNPKG

nglibs-cfd

Version:

NGLibs, The module for CFD field Loading for OpenFOAM.

103 lines (102 loc) 4.47 kB
"use strict"; 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;