I'm a PhD computer science student and i'm starting a project that will analyse and potentially enhance the parallel execution features of OpenFOAM.
In order to do so, at this stage, I need as much as information as possible on OF parallel features, specially in domain decomposition, which is not so simple as it seems. I've been looking around for talks, workshop slides, forum discussions and analyzing the source code but the information available specifically on this subject is too short. So i decided to create a thread wondering if u guys would kindly spare some your time and share knowledge on this subject.
I'm looking for any kind of information regarding parallel execution. I'm aware of the domain decomposition (DD) features but only in a user perceptive but I need the theoretical and core foundations of such decomposition. Please note that my general DD and continuum mechanics knowledge is also too short (i'm a wanna be computer scientist :-) )
I'll throw some questions to warm up (ignore any order):
(i) How the lduMatrix assembly and solving goes with DD? Does each processor assembles its own matrix and rhs regarding its cells and solves it? What's the differences in solving and assembly used mechanisms between a parallel and non-parallel execution?
(ii) What is a patch?
(iii) What is a zero halo layer approach? What in terms of execution order (assembly, communicate, solve step) or just in terms of MPI communication means zero halo layer approach? Basically and briefly, what and when is copied?
(iii) Whats is the concept of interface in lduAdressing?
(iv) What's the purpose of lduSchedule?
(v) I read somewhere that neighbor cells are treated as boundaries. How's that?
I have several others question. I know that these may not be simple questions but any tips or keywords to the answer would helpful.
For now, i'm focused on OF 1.7.1 or 1.6-ext.
I would appreciate any help,
|All times are GMT -4. The time now is 16:10.|