Files
meson-mfem/web/smoke.cjs

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;
});