This MR brings my implementation to flexibly use
compensate_non_equilibrium_initial_residuum in balance equation wise, or primary variable wise. The changes are:
- for the input data in project file, tag of
compensate_non_equilibrium_initial_residuumis moved from
<process_variables><process_variable>. The reason is that there is only one process defined with the monolithic scheme but the variables are always individually defined for the balance equation of each physical process.
- the computation of non equilibrium initial residuum is conducted if any of
<process_variables><process_variable>has the tag of
compensate_non_equilibrium_initial_residuumwith true value. After assembly of the vector of non equilibrium initial residuum, the entries of that vector that associated with the variables with the false value of
compensate_non_equilibrium_initial_residuumare set to zero. With such implementation, the flexible use of
compensate_non_equilibrium_initial_residuumis realized without modifying the local assemblers.
for the sake of simplicity in usage, the assembly of boundary conditions and source terms is excluded from the computation of non equilibrium initial residuum vector. That means if the compensation of non equilibrium initial residuum to the balance equation is considered, the Neumann BC and the source term must be given as their increments from the initial state. This statement is added to the documentation of the tag of
The same as before, that tag is an optional input. If the tag of
compensate_non_equilibrium_initial_residuum is not presented in project file, its value is set to false by default.
Feature description was added to the changelog
Tests covering your feature were added? Yes it does. The feature is tested by modifying the existing benchmark.
Any new feature or behavior change was documented? The related parameter documentation is updated.