Skip to content

Single run with FOM

Kevin" Seung Whan Chung edited this page Dec 12, 2023 · 19 revisions

The main category in the input file specifies the mode of main and the type of the solver. For example, examples/poisson/poisson.yml specifies,

main:
  mode: single_run
  use_rom: false
  solver: poisson

that (1) it is single_run mode, (2) FOM simulation will be run, and (3) Poisson equation will be solved.

Parameterized problem

At single_run mode, the equation will be solved on a particular right-hand side function and boundary condition set by the parameterized problem. In examples/poisson/poisson.yml, the type of the parameterized problem is set as:

parameterized_problem:
  name: poisson0

The parameterized problem poisson0 defines a right-hand side and a boundary condition as: $$-\nabla^2 u = \sin2\pi\left(kx + ky + kz + \theta\right)$$ $$u = 0 \qquad \text{on } \partial D$$ with parameters $k$ and $\theta$. The parameters for each parameterized problem can be set under single_run/[the name of parameterized problem]. For example of examples/poisson/poisson.yml,

single_run:
  poisson0:
    k: 2.5

which sets the parameters as: $$k = 2.5$$ If the parameter values are not specified, hard-coded default values are used instead ($\theta=0$ by default).

There are a variety of parameterized problems defined for each physics solver, which can be found in the source code include/parameterized_problem.hpp.

It is possible to change these parameter values at runtime using forced inputs, as instructed here. For example, if we want to solve the same problem as above but with a different $k$,

../../bin/main -i poisson.yml -f single_run/poisson0/k=1.5

will return a solution with $k=1.5$,