On Neumann Boundary Condition
Description
Based upon my limited understanding, the current implementation of the Neumann boundary condition as well as derivatives of the Neumann boundary condition is very generic
see ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h
Line 89
_local_rhs.noalias() += N * parameter_node_values.dot(N) * w * integral_measure;
or ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h
Line 115
_local_rhs.noalias() += N * neumann_node_values.dot(N) * w;
Consequently, when assigning Neumann boundary condition in the prj file, one has to go over the weak formulation of the process of concern and do some process-specific pre-calculation for the value assignment. It is doable in the case that the pre-calculation is along with a constant physical property, e.g., fluid density, and porosity. In a particular case that the involved physical property evolves over time, it becomes hard to tackle. Taking the hydro-thermal process as an example, the fluid density of the representative volume element where the Neumann boundary condition is imposed is temperature-dependent. In other words, there is no way to determine the fluid density for the pre-calculation before the simulation.
Thus, I suggest (maybe incorrect) combining the local assembly for the Neumann boundary condition with individual process. The above are just my two cents. What do you think?