Model problems are defined using JSON files that combine solver settings, PDE data, and output configurations.
Key configuration sections:
solverType: Selects the algorithm (wos, wost, bvc, or rws).deviceBackend: Specifies the compute backend (e.g., cuda).solver: Parameters for the specific algorithm (e.g., nWalks, maxWalkLength, russianRouletteThreshold).modelProblem: Defines the physical problem, including paths to geometry (OBJ), isReflectingBoundary mask, and texture files for boundary values (absorbingBoundaryValue, reflectingBoundaryValue) and sourceValue.output: Controls the result format, including solutionFile path, gridRes, and colormap settings (colormap, colormapMinVal, colormapMaxVal).
Note on File Formats: You can use PNG or PFM files for textures and outputs. Use PFM for arbitrary floating-point values; PNGs are limited to the 0-255 range and will clip values.
{
"solverType": "wost",
"deviceBackend": "cuda",
"solver": {
"nWalks": 128,
"maxWalkLength": 1024,
"epsilonShellForAbsorbingBoundary": 1e-3,
"epsilonShellForReflectingBoundary": 1e-3,
"russianRouletteThreshold": 0.99,
"splittingThreshold": 1.5,
"ignoreAbsorbingBoundaryContribution": false,
"ignoreReflectingBoundaryContribution": true,
"ignoreSourceContribution": true,
"disablePersistentThreads": false
},
"modelProblem": {
"geometry": "demo/model_problems/engine/data/geometry.obj",
"isReflectingBoundary": "demo/model_problems/engine/data/is_reflecting_boundary.pfm",
"absorbingBoundaryValue": "demo/model_problems/engine/data/absorbing_boundary_value.pfm",
"reflectingBoundaryValue": "demo/model_problems/engine/data/reflecting_boundary_value.pfm",
"sourceValue": "demo/model_problems/engine/data/source_value.pfm",
"robinCoeff": 0.0,
"absorptionCoeff": 0.0,
"solveDoubleSided": false,
"solveExterior": false,
"domainIsWatertight": true,
"useSdfForAbsorbingBoundary": false
},
"output": {
"solutionFile": "demo/model_problems/engine/solutions/wost.pfm",
"gridRes": 256,
"boundaryDistanceMask": 1e-2,
"saveDebug": false,
"saveColormapped": true,
"colormap": "turbo",
"colormapMinVal": 0.0,
"colormapMaxVal": 1.1
}
}