From 8de87a5ec09e76a098fbbbea0f1c44388fdb0a50 Mon Sep 17 00:00:00 2001 From: David Seus <david.seus@ians.uni-stuttgart.de> Date: Wed, 14 Oct 2020 17:29:51 +0200 Subject: [PATCH] explain domainPatch --- LDDsimulation/README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/LDDsimulation/README.md b/LDDsimulation/README.md index 1e054cb..64d108d 100644 --- a/LDDsimulation/README.md +++ b/LDDsimulation/README.md @@ -33,7 +33,7 @@ Some commented out code can be found here which might or might not be usefull fo This file contain the class definition of the `domainPatch` class which is the main data structure of the LDD simulation code. The programming paradigm was: >>> -**PARADIGM** +**PARADIGM:** _Each subdomain contains all information need and is completely independent of other subdomains._ >>> All information means: @@ -46,7 +46,19 @@ Methods in charge of communicating dofs to interfaces for exchange of informatio - function spaces and functions: Each subdomain stores their functionspaces as well as functions in which to store iterates. We briefly highlight some of the methods: -- `governing_problem(*kwrgs)`: +- `governing_problem(*kwrgs)`: This method gets called by `LDDsimulation.Lsolver_step(*kwrgs)` and assembles the form for the LDD solver +in `ufl` language. It also calls the methods that calculate the gli terms that +decouple the problems. The models are hardcoded here. +If you want to implement LDD methods for other models, this is were it needs to +happen. +- `calc_gli_term(*kwrgs)`: Method that gets calle by the `governing_problem(*kwrgs)` method and calculates the gli term of the current +iteration step. This method also communicates dofs to the interface objects. +Note that this method needs to be revisited if parallelisation is to be implemented. +Similarly, if more general types of gli methods need to be considered, this is where it needs to happen. +- `calc_gl0_term(*kwrgs)`: Method that gets called by the `LDDsimulation.prepare_subdomain(*kwrgs)` within the `LDDsimulation.prepare_LDDsolver(*kwrgs)` method to calculate the initial gl0 term at the beginning of the calculation of the solution of a new timestep. +As the normal flux gets calculated explicitly here, parts of the model are hard coded in this method aswell. Bare that in mind, when implementing new models. +A layer of abstraction for the flux might be usefull here. + ## `boundary_and_interface.py` -- GitLab