Skip to content

Frontend API Reference

This page summarizes the most commonly used frontend functions and fields. Detailed behavior is implemented in the language-specific frontend directories:

  • frontends/Matlab
  • frontends/Python/exasim
  • frontends/Julia/Exasim

Function Reference

Concept MATLAB Python Julia Purpose
Initialize app initializeexasim() initializeexasim() Exasim.initializeexasim() Return default pde and mesh.
Initialize PDE only initializepde(version) initializepde(version) Exasim.initializepde(version) Return default PDE configuration.
Preprocess preprocessing(pde, mesh) preprocessing(pde, mesh) Exasim.preprocessing(pde, mesh) Write backend input files and return updated pde, mesh, master, and dmd.
Run workflow exasim(pde, mesh) exasim(pde, mesh) Exasim.exasim(pde, mesh) Preprocess, generate, build, run, and fetch outputs.
Compile cmakecompile(pde) cmakecompile(pde) Exasim.cmakecompile(pde) Configure/build generated CMake app.
Run executable runcode(pde, numpde) runcode(pde, numpde) Exasim.runcode(pde, numpde) Launch solve or postprocess executable.
Export app exportapp(pde, dest) exportapp(pde, dest) Exasim.exportapp(pde, dest) Create standalone app bundle.
Visualize vis(visfields, app, mesh) vis(visfields, app, mesh) Exasim.vis(visfields, app, mesh) Write frontend visualization output.

Example:

from exasim import initializeexasim, exasim, exportapp

pde, mesh = initializeexasim()
pde["modelfile"] = "pdemodel"
sol, pde, mesh = exasim(pde, mesh)
exportapp(pde, "standalone_app")

Common pde Fields

Field Default role Notes
model / pdemodel Model family name MATLAB historically initializes pdemodel; Python/Julia expose model.
modelfile Host-language model file Omit extension in examples.
physicsparam Single runtime physics vector Passed to model callbacks as param.
physicsparamsweep Optional matrix/list of physics vectors Rows are cases.
physicsparamwarmstart Optional sweep continuation flag First case uses standard initialization; later cases reuse previous converged state.
platform CPU/GPU selection Must match installed backend support.
mpiprocs Number of MPI ranks Controls preprocessing and launch.
datapath Runtime input/output root Defaults to current directory.
builddir / buildpath Generated build root Defaults to .exasim.
dataoutpath Optional output override Used for sweep cases and custom output placement.
executionmode Runtime mode 0 solve, 1 postprocess.
saveParaview Backend VTK output flag Requires visualization field counts and callbacks.
saveResNorm Residual-history output flag Writes residual norm files.

Model Callback Names

Callbacks are generated only when the model and dimensions require them. Common names include:

initu, initq, initw, initodg
flux, source, tdfunc
ubou, fbou, fbouhdg, fhat, uhat, stab
visscalars, visvectors, vistensors
qoivolume, qoiboundary

See Model contract for semantics. See pdemodel abstraction for frontend-specific examples and data flow.

Language Differences

Topic MATLAB Python Julia
Container struct dict PDEStruct
Field access pde.field pde["field"] pde.field
Package setup exasim_setup.m Python package/import path using Exasim
Array convention MATLAB column-major arrays NumPy arrays; Exasim data follows backend layout Julia column-major arrays
Export setting exportapp(pde, dest) exportapp(pde, dest) Exasim.exportapp(pde, dest)

Text Frontend Compatibility

The pdeapp.txt workflow is not an interactive language frontend, but it uses the same core fields and the same backend runtime semantics. Use it when you want a compact, frontend-free input file for text2code-generated standalone applications.

physicsparam = 1.4 0.72 2000.0
saveParaview = 1

See pdeapp.txt fields and text2code.

See Also