Commits
Jozsef Bakosi authored 1c8b5ff840b
Add Dirichlet BC masks
This changes how Dirichlet BCs are expected from the user. Instead of
listing the side set ids, each scalar component must now be listed for
each side set. This gives more control over the the individual
component and collects all scalar component under compflow. Example:
problem slot_cyl
compflow
depvar u
material
gamma 1.66666666666667 end
end
bc_dirichlet
sideset 1 1 1 1 1 1 1 end
sideset 2 1 1 1 1 1 1 end
sideset 3 1 1 1 1 1 1 end
sideset 4 1 1 1 1 1 0 end
sideset 5 1 1 1 1 1 1 end
sideset 6 1 1 1 1 1 0 end
end
end
This prescribes Dirichlet BCs for sidesets 1-6 and specifies a mask (0
or 1) for each scalar components whether to set Dirichlet BCs or not.
This prescribes Dirichlet BCs for all flow components for sidesets 1-6
and sets scalar Dirichlet BCs for sidesets 1,2,3, and 5. The actual BC
value is evaluated internally, as defined by the problem, in this case
slot_cyl.
For user-defined problems and time-dependent Dirichlet BCs the mask will
still be useful, to prescribe Dirichlet BCs component-wise, but the BC
value must be defined in some other way.
Other, related, changes:
* Remove the disjoint check from the parser's grammar.
* Sideset ids are now stored as ints instead of strings.
* Remove some unused problem types.
* Tested most of this code with a street canyon case which includes
dispersion of a transported scalar from a point source and the slotted
cylinder case.
* Renamed BC type tags to more readable ones.
* The solver now does not interrogate inputdeck< tag::param,
tag::transport >, which will be eliminated in the future. The number
of scalar components solved for is set based on the problem
configuration in the grammar.
* Add transported scalar to history output.
* Add a "physics" scalar source for problem type POINT_SRC, besides the
existing "math" source term.
* For local time stepping, the converge criterion now checks if the
residual is larger than 0.0. This is needed to prescribe convergence
criterion for a scalar that has not yet been released.
* Field output now includes the analytic solution (if defined for a
problem).
* Problem source terms now return a vector and this can be of variable
size, since some will define flow variables only, some will also
prescribe scalars. Calling code will have deal with this.
* Add slot_cyl test problem.