27 lines
868 B
JavaScript
27 lines
868 B
JavaScript
"use strict";
|
|
|
|
const path = require("node:path");
|
|
|
|
async function main() {
|
|
const modulePath = path.resolve(process.argv[2]);
|
|
const createModule = require(modulePath);
|
|
const module = await createModule({ print() {}, printErr() {} });
|
|
const capabilities = JSON.parse(
|
|
module.ccall("mfem_demo_capabilities", "string", [], []),
|
|
);
|
|
const result = JSON.parse(
|
|
module.ccall("mfem_demo_solve", "string", ["number", "number"], [6, 2]),
|
|
);
|
|
if (!capabilities.wasm || !result.ok || result.trueDofs <= 0 || result.iterations <= 0) {
|
|
throw new Error(`Unexpected MFEM Wasm result: ${JSON.stringify(result)}`);
|
|
}
|
|
process.stdout.write(
|
|
`MFEM ${capabilities.mfemVersion} Wasm solve: dofs=${result.trueDofs} iterations=${result.iterations} l2=${result.l2Error}\n`,
|
|
);
|
|
}
|
|
|
|
main().catch((error) => {
|
|
console.error(error);
|
|
process.exitCode = 1;
|
|
});
|