Skip to content
Snippets Groups Projects

DDD: move global state to a context object

Merged Ansgar Burchardt requested to merge feature/context into master

This merge request moves the global state from DDD into a context object to allow multiple grids in the parallel implementation of UGGrid.

Closes: #36 (closed)

Edited by Ansgar Burchardt

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added 1 commit

    • 45188a44 - ugm.cc: call constructor/destructor for multigrid objects

    Compare with previous version

  • Ansgar Burchardt marked the checklist item Use new to allocate grid/mggrid struct (and delete to free it) as completed

    marked the checklist item Use new to allocate grid/mggrid struct (and delete to free it) as completed

  • Ansgar Burchardt added 17 commits

    added 17 commits

    • 45188a44...cb1f48b4 - 8 commits from branch master
    • 46ed5c6a - introduce PPIFContext
    • 28379944 - PPIFContext: add isMaster() method
    • 19fcd0cf - add MPI flags to all libraries
    • a12bb96a - add PPIFContext to grid structure
    • 7c13af04 - refine.cc: use PPIFContext where available
    • 58b58766 - ugm.cc: use PPIFContext where available
    • 43287fc7 - ugm.cc: call constructor/destructor for multigrid objects
    • 999fdc62 - io.cc: no longer include local rank in debug output
    • e1e4ad07 - lowcomm.cc: no longer include local rank in debug output

    Compare with previous version

  • Ansgar Burchardt added 5 commits

    added 5 commits

    • 8ec6d733 - remove support for defaults file
    • 7a68bf5a - ddd: remove synchronized output
    • 82e8e2da - ugdevices.cc: treat all ranks equally in parallel case
    • 2d02c329 - ugdevices.cc: no longer try to get default mutelevel from defaults file
    • 7a098781 - [cleanup] InitDevices: remove argc and argv parameters

    Compare with previous version

  • Ansgar Burchardt added 51 commits

    added 51 commits

    • 7a098781...d5b57529 - 36 commits from branch master
    • 240663e7 - introduce PPIFContext
    • e6c75878 - PPIFContext: add isMaster() method
    • c02389b8 - add MPI flags to all libraries
    • 5afe1b61 - add PPIFContext to grid structure
    • 65721b9d - refine.cc: use PPIFContext where available
    • 9f97423d - ugm.cc: use PPIFContext where available
    • 2116cb9a - ugm.cc: call constructor/destructor for multigrid objects
    • b551728e - io.cc: no longer include local rank in debug output
    • 1493fbef - lowcomm.cc: no longer include local rank in debug output
    • 62cd59f5 - remove support for defaults file
    • 7900eb4d - ddd: remove synchronized output
    • 2822f06b - ugdevices.cc: treat all ranks equally in parallel case
    • 66728b41 - ugdevices.cc: no longer try to get default mutelevel from defaults file
    • 12b2a0db - [cleanup] InitDevices: remove argc and argv parameters
    • 05642009 - add preprocessor macro to indicate support for context objects

    Compare with previous version

  • Ansgar Burchardt added 23 commits

    added 23 commits

    • 05642009...bcceb207 - 5 commits from branch master
    • c1d4cffb - introduce PPIFContext
    • 9ec6f296 - PPIFContext: add isMaster() method
    • f2cef50f - add MPI flags to all libraries
    • 78622201 - add PPIFContext to grid structure
    • af6eb48d - refine.cc: use PPIFContext where available
    • 3c6f042a - ugm.cc: use PPIFContext where available
    • 009c7cc7 - ugm.cc: call constructor/destructor for multigrid objects
    • 4e9abeac - io.cc: no longer include local rank in debug output
    • b3da594a - lowcomm.cc: no longer include local rank in debug output
    • a1f57019 - remove support for defaults file
    • e021e4cd - ddd: remove synchronized output
    • 3067295e - ugdevices.cc: treat all ranks equally in parallel case
    • 22cbc5bb - ugdevices.cc: no longer try to get default mutelevel from defaults file
    • 32da3c42 - [cleanup] InitDevices: remove argc and argv parameters
    • 0d4b24f4 - add preprocessor macro to indicate support for context objects
    • e063f75f - ELEM_DESC: use unique_ptr for gbits member variable
    • 55a3bfe8 - cons.cc: use std::vector and std::sort
    • f82383aa - debug.cc: use std::sort

    Compare with previous version

  • Ansgar Burchardt added 27 commits

    added 27 commits

    • f89a3961 - [cleanup] remove lib/ugdata/helpfile.list
    • b5f344b2 - remove support for defaults file
    • 8779e1c4 - ugdevices.cc: treat all ranks equally in parallel case
    • 8142ca7a - ugdevices.cc: no longer try to get default mutelevel from defaults file
    • 1b6ece75 - [cleanup] InitDevices: remove argc and argv parameters
    • a5e28eae - ddd: remove synchronized output
    • 956c9823 - [cleanup] DDD_Init: remove argc and argv parameters
    • d8b490b1 - ELEM_DESC: use unique_ptr for gbits member variable
    • 034a42d2 - [cleanup] TYPE_DESC: use bool for hasHeader member variable
    • ffaf4c4b - introduce PPIFContext
    • d6740fe6 - PPIFContext: add isMaster() method
    • 46d913fe - add MPI flags to all libraries
    • 921149d3 - add PPIFContext to grid structure
    • 2a4c578b - introduce DDDContext
    • 391cc5d8 - refine.cc: use PPIFContext where available
    • 9f4fe3fb - ugm.cc: use PPIFContext where available
    • 133ea715 - [cleanup] use std::vector for infobuffer and lbinfo
    • 62c7162b - ugm.cc: call constructor/destructor for multigrid objects
    • bd87024a - add preprocessor macro to indicate support for context objects
    • e7a61ecf - cons.cc: use std::vector and std::sort
    • e604851c - debug.cc: use std::sort
    • 9e6aae8f - er.cc: use std::sort
    • b57f8fa3 - ident.cc: use std::sort
    • ca91a964 - notify.cc: use std::sort
    • 02386011 - ifcreate.cc: use std::sort
    • 35eedf1e - objmgr.cc: use std::sort
    • 2d4c7540 - refine.cc: use std::sort and std::binary_search

    Compare with previous version

  • Ansgar Burchardt added 16 commits

    added 16 commits

    • cd8cb096 - introduce DDDContext
    • 97bc4cb4 - refine.cc: use PPIFContext where available
    • 7ac538c8 - ugm.cc: use PPIFContext where available
    • 292e5008 - [cleanup] use std::vector for infobuffer and lbinfo
    • e2ead7f7 - ugm.cc: call constructor/destructor for multigrid objects
    • e1b5122b - add preprocessor macro to indicate support for context objects
    • 9b613b1e - cons.cc: use std::vector and std::sort
    • 8bd5cd24 - debug.cc: use std::sort
    • bb75dc19 - er.cc: use std::sort
    • d23d5d54 - ident.cc: use std::sort
    • 88260e23 - notify.cc: use std::sort
    • 7d4535d4 - ifcreate.cc: use std::sort
    • 8c782ad6 - objmgr.cc: use std::sort
    • 8192827e - refine.cc: use std::sort and std::binary_search
    • 18f84de7 - remove DDD_InfoMe, DDD_InfoMaster, DDD_InfoProcs
    • d310de70 - add DDDContext to DDD_XferBegin and DDD_XferEnd

    Compare with previous version

  • Ansgar Burchardt added 2 commits

    added 2 commits

    • 63f61e4f - add DDDContext to DDD_XferBegin and DDD_XferEnd
    • 79a5b02d - add DDDContext to DDD_IdentifyBegin and DDD_IdentifyEnd

    Compare with previous version

  • I might merge the work done so far in the next days to avoid having one giant merge request later.

    Everything should just continue to work as before; as a small new feature one can already set the MPI communicator to something different from MPI_COMM_WORLD (but the limitation of only one grid per process still exists). This needs a small patch for dune-grid to have the CollectiveCommunication object there not use MPI_COMM_WORLD, but the same communicator as UG.

  • Everything should just continue to work as before; as a small new feature one can already set the MPI communicator to something different from MPI_COMM_WORLD (but the limitation of only one grid per process still exists). This needs a small patch for dune-grid to have the CollectiveCommunication object there not use MPI_COMM_WORLD, but the same communicator as UG.

    as 2.6 is in freeze now, we should not start changing interfaces dune-grid at that stage.

  • @christi: The patched dune-uggrid will work just fine with both patched and unpatched dune-grid. Both patched and unpatched dune-grid will work with patched and unpatched dune-uggrid.

    There are no incompatible changes not guarded by a #ifdef (and that one is very small). There might be more changes in the future (e.g. a constructor taking a MPI_Comm is still missing on both sides).

    (And I'm not sure about merging the dune-grid patch yet, maybe only later.)

  • Ansgar Burchardt added 27 commits

    added 27 commits

    • 79a5b02d...3b33ae88 - 5 commits from branch master
    • d9ea484d - introduce PPIFContext
    • 0206cacc - PPIFContext: add isMaster() method
    • 0572141e - add MPI flags to all libraries
    • 40a0a5da - add PPIFContext to grid structure
    • 28c55faa - introduce DDDContext
    • 0656f422 - refine.cc: use PPIFContext where available
    • ab2fe253 - ugm.cc: use PPIFContext where available
    • a751a9be - [cleanup] use std::vector for infobuffer and lbinfo
    • e1a742cd - add preprocessor macro to indicate support for context objects
    • 4f82597c - cons.cc: use std::vector and std::sort
    • 32b50bd0 - debug.cc: use std::sort
    • 9a7dccfa - er.cc: use std::sort
    • 0efe04a6 - ident.cc: use std::sort
    • e0338b55 - notify.cc: use std::sort
    • 65b8fba7 - ifcreate.cc: use std::sort
    • ae192a1f - objmgr.cc: use std::sort
    • 0a7fff44 - refine.cc: use std::sort and std::binary_search
    • 866bbb0b - remove DDD_InfoMe, DDD_InfoMaster, DDD_InfoProcs
    • 88666b92 - add DDDContext to DDD_XferBegin and DDD_XferEnd
    • 978959e0 - add DDDContext to DDD_IdentifyBegin and DDD_IdentifyEnd
    • df98c5cd - add context to DDD_Init and DDD_Exit
    • 86361d0f - CMakeLists.txt: add DUNE's MPI flags

    Compare with previous version

  • added 1 commit

    • 9b31e525 - CMakeLists.txt: do not add MPI flags twice

    Compare with previous version

  • Ansgar Burchardt added 4 commits

    added 4 commits

    • 9533896c - add context to DDD_Init and DDD_Exit
    • ff392f83 - CMakeLists.txt: add DUNE's MPI flags
    • 9e464f2e - CMakeLists.txt: do not add MPI flags twice
    • c0f8e901 - add context to type manager functions

    Compare with previous version

  • Ansgar Burchardt added 29 commits

    added 29 commits

    • 86efef74 - introduce DDDContext
    • b8647a74 - refine.cc: use PPIFContext where available
    • 511208da - ugm.cc: use PPIFContext where available
    • 863e9d83 - [cleanup] use std::vector for infobuffer and lbinfo
    • debfee0b - add preprocessor macro to indicate support for context objects
    • 37f86849 - cons.cc: use std::vector and std::sort
    • 7eb6072c - debug.cc: use std::sort
    • 309a14c9 - er.cc: use std::sort
    • a7ef219b - ident.cc: use std::sort
    • 679a232c - notify.cc: use std::sort
    • ae96b9bd - ifcreate.cc: use std::sort
    • f145b62a - objmgr.cc: use std::sort
    • 8358257d - refine.cc: use std::sort and std::binary_search
    • 4a0db14b - remove DDD_InfoMe, DDD_InfoMaster, DDD_InfoProcs
    • 486728e9 - add DDDContext to DDD_XferBegin and DDD_XferEnd
    • 971ec02e - add DDDContext to DDD_IdentifyBegin and DDD_IdentifyEnd
    • 220da80e - add context to DDD_Init and DDD_Exit
    • 8d000e1e - CMakeLists.txt: add DUNE's MPI flags
    • e771d96e - CMakeLists.txt: do not add MPI flags twice
    • f8fa9bf6 - add context to type manager functions
    • a5883fd1 - add context to join environment module functions
    • f976ae6f - jcmds.cc: use std::sort
    • 27e890db - [cleanup] simplify preprocessor logic to define DDD_SetHandler* functions
    • 6826af3a - add context to DDD_SetHandler* functions
    • 52ef8fc3 - add context to DDD_PrioMerge* functions
    • bce056d6 - add context to DDD_Status, DDD_ConsCheck, DDD_ListLocalObjects, DDD_SearchHdr
    • e01018ab - [cleanup] remove unused header dddresources.h
    • 4c5695ff - add context to DDD_SetOption
    • e816ffdb - [cleanup] remove unimplemented functions

    Compare with previous version

  • Ansgar Burchardt added 17 commits

    added 17 commits

    • 86be5255 - add DDDContext to DDD_XferBegin and DDD_XferEnd
    • ecda6a58 - add DDDContext to DDD_IdentifyBegin and DDD_IdentifyEnd
    • 76890a02 - add context to DDD_Init and DDD_Exit
    • 734bfae9 - CMakeLists.txt: add DUNE's MPI flags
    • 0c85f2a6 - CMakeLists.txt: do not add MPI flags twice
    • 6978a507 - add context to type manager functions
    • 05523925 - add context to join environment module functions
    • 4389b710 - jcmds.cc: use std::sort
    • 996f9049 - [cleanup] simplify preprocessor logic to define DDD_SetHandler* functions
    • 785dfe5e - add context to DDD_SetHandler* functions
    • 0f30408d - add context to DDD_PrioMerge* functions
    • 9aae0e3d - add context to DDD_Status, DDD_ConsCheck, DDD_ListLocalObjects, DDD_SearchHdr
    • 3cdac48e - [cleanup] remove unused header dddresources.h
    • f8155a62 - add context to DDD_SetOption
    • d51549b6 - [cleanup] remove unimplemented functions
    • 7d345b50 - add context to interface module functions
    • 5bec9717 - [cleanup] remove unused macro OLDSTYLE

    Compare with previous version

  • Ansgar Burchardt added 29 commits

    added 29 commits

    • 13666148 - cons.cc: use std::vector and std::sort
    • f5f61b2b - debug.cc: use std::sort
    • f4096422 - er.cc: use std::sort
    • a086e81b - ident.cc: use std::sort
    • e3896303 - notify.cc: use std::sort
    • c5930348 - ifcreate.cc: use std::sort
    • d7001fdb - objmgr.cc: use std::sort
    • 1bcd84de - refine.cc: use std::sort and std::binary_search
    • 71d2945f - remove DDD_InfoMe, DDD_InfoMaster, DDD_InfoProcs
    • 2affd1cc - add DDDContext to DDD_XferBegin and DDD_XferEnd
    • 53d7a24c - add DDDContext to DDD_IdentifyBegin and DDD_IdentifyEnd
    • 1d39c023 - add context to DDD_Init and DDD_Exit
    • 9a323a1a - CMakeLists.txt: add DUNE's MPI flags
    • 3f648533 - CMakeLists.txt: do not add MPI flags twice
    • 18e06e0c - add context to type manager functions
    • de55a0ae - add context to join environment module functions
    • abf852e4 - jcmds.cc: use std::sort
    • 4bbeaf12 - [cleanup] simplify preprocessor logic to define DDD_SetHandler* functions
    • b1a6d98a - add context to DDD_SetHandler* functions
    • a246311a - add context to DDD_PrioMerge* functions
    • 91f9ff13 - add context to DDD_Status, DDD_ConsCheck, DDD_ListLocalObjects, DDD_SearchHdr
    • a54882ce - [cleanup] remove unused header dddresources.h
    • 0b6e293b - add context to DDD_SetOption
    • 323da656 - [cleanup] remove unimplemented functions
    • 8d67f8a4 - add context to interface module functions
    • 953522a1 - [cleanup] remove unused macro OLDSTYLE
    • 40e38813 - add compatability with unpatched dune-grid versions
    • a84a3668 - add context to global reduction functions
    • b29e5bff - add preprocessor macro to indicate support for context objects

    Compare with previous version

  • Ansgar Burchardt added 38 commits

    added 38 commits

    • b29e5bff...330d748b - 14 commits from branch master
    • 49539291 - introduce PPIFContext
    • 3c1116a1 - PPIFContext: add isMaster() method
    • 5f6787ab - add MPI flags to all libraries
    • 04cd95cb - add PPIFContext to grid structure
    • 077db13d - introduce DDDContext
    • f0e7b434 - refine.cc: use PPIFContext where available
    • 8ab29307 - ugm.cc: use PPIFContext where available
    • df0cb538 - [cleanup] use std::vector for infobuffer and lbinfo
    • 7977f174 - remove DDD_InfoMe, DDD_InfoMaster, DDD_InfoProcs
    • d6a7308b - add DDDContext to DDD_XferBegin and DDD_XferEnd
    • 98b14ac5 - add DDDContext to DDD_IdentifyBegin and DDD_IdentifyEnd
    • a4a853e2 - add context to DDD_Init and DDD_Exit
    • f5ff5367 - CMakeLists.txt: add DUNE's MPI flags
    • 31895c12 - CMakeLists.txt: do not add MPI flags twice
    • 1ea664d8 - add context to type manager functions
    • 8ef452a9 - add context to join environment module functions
    • d6dd7729 - add context to DDD_SetHandler* functions
    • 71d81d26 - add context to DDD_PrioMerge* functions
    • 6a070608 - add context to DDD_Status, DDD_ConsCheck, DDD_ListLocalObjects, DDD_SearchHdr
    • b74dda7f - add context to DDD_SetOption
    • 8222163d - add context to interface module functions
    • 25c7044b - add compatability with unpatched dune-grid versions
    • b15f6dc5 - add context to global reduction functions
    • f0ed1647 - add preprocessor macro to indicate support for context objects

    Compare with previous version

  • Ansgar Burchardt added 29 commits

    added 29 commits

    • ab24603a - [cleanup] lowcomm: use proper opaque data types instead of void*
    • a404ae97 - [cleanup] notify.cc: use static linkage for internal functions
    • 4750ffa4 - introduce PPIFContext
    • 6b57c937 - PPIFContext: add isMaster() method
    • b8bf9263 - add MPI flags to all libraries
    • 5abe0098 - add PPIFContext to grid structure
    • 5b91dc64 - introduce DDDContext
    • 7d18e53b - refine.cc: use PPIFContext where available
    • b55cdaac - ugm.cc: use PPIFContext where available
    • 19cf884a - [cleanup] use std::vector for infobuffer and lbinfo
    • 40c59286 - remove DDD_InfoMe, DDD_InfoMaster, DDD_InfoProcs
    • 849d2ced - add DDDContext to DDD_XferBegin and DDD_XferEnd
    • ec083a50 - add DDDContext to DDD_IdentifyBegin and DDD_IdentifyEnd
    • c95fe561 - add context to DDD_Init and DDD_Exit
    • e14cf881 - CMakeLists.txt: add DUNE's MPI flags
    • 835d1fcf - CMakeLists.txt: do not add MPI flags twice
    • 5aa2e689 - add context to type manager functions
    • d0d3acfa - add context to join environment module functions
    • 37fa8638 - add context to DDD_SetHandler* functions
    • ccae6e17 - add context to DDD_PrioMerge* functions
    • a6acafd2 - add context to DDD_Status, DDD_ConsCheck, DDD_ListLocalObjects, DDD_SearchHdr
    • 3f888ac7 - add context to DDD_SetOption
    • 3d9bc3b8 - add context to interface module functions
    • c996af9b - add compatability with unpatched dune-grid versions
    • 398fd70b - add context to global reduction functions
    • f3e09c52 - add context to implementation of transfer environment module
    • 78adcaaf - add context to lowcomm module
    • 00d3efb9 - add context to notify module
    • 129a70e4 - add preprocessor macro to indicate support for context objects

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading