diff --git a/slides/problem.md b/slides/problem.md index 9c921aeae23a32552f11ddf5306fa3d796472cbe..ece64e517fc3539d05ec291974e4c895bbff5d90 100644 --- a/slides/problem.md +++ b/slides/problem.md @@ -227,6 +227,24 @@ PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const ## +More general Dirichlet boundary functions: +```cpp +PrimaryVariables dirichlet(const Element &element, + const SubControlVolumeFace &scvf) const +{ + ... +} +``` +```cpp +PrimaryVariables dirichlet(const Element &element, + const SubControlVolume &scv) const +{ + ... +} +``` + +## + Neumann boundary condition values / boundary fluxes (only called on Neumann boundaries) ```cpp @@ -247,6 +265,21 @@ NumEqVector neumannAtPos(const GlobalPosition& globalPos) const ## +More general Neumann boundary function: + +```cpp +template<class ElementVolumeVariables, class ElementFluxVariablesCache> +NumEqVector neumann(const Element& element, + const FVElementGeometry& fvGeometry, + const ElementVolumeVariables& elemVolVars, + const ElementFluxVariablesCache& elemFluxVarsCache, + const SubControlVolumeFace& scvf) const +{ + ... +} +``` +## + Initial conditions: ```cpp @@ -274,6 +307,21 @@ NumEqVector sourceAtPos(const GlobalPosition &globalPos) const { return NumEqVector(0.0); } ``` +## + +More general source/sink function: + +```cpp +template<class ElementVolumeVariables> +NumEqVector source(const Element &element, + const FVElementGeometry& fvGeometry, + const ElementVolumeVariables& elemVolVars, + const SubControlVolume &scv) const +{ + ... +} +``` + # Spatial Parameters definition ## Spatial parameters @@ -373,7 +421,7 @@ See [Part I: Runtime parameters](./params.html) for details. ## Main program * Each problem has one main file (`test_name.cc` or `main.cc`) -* Here: `2pmain.cc` and `2p2cmain.cc` +* Here: `2pmain.cc` and `2pnimain.cc` * Contains the `main` function (mandatory in C/C++ programs) ## Main function