Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
ExaHyPE-Engine
ExaHyPE-Engine
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 68
    • Issues 68
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • ExaHyPE
  • ExaHyPE-EngineExaHyPE-Engine
  • Issues
  • #295

Closed
Open
Opened Sep 05, 2019 by Dominic Etienne Charrier@domchaOwner0 of 8 tasks completed0/8 tasks

Local Time Stepping Plan

We could rather quickly implement a local time steppging version a la SeisSol where we store the full space-time face data only for faces of coarse grid cells along mesh resolution transitions.

Steps (in German):

  • Aufbrechen des Extrapolations-Operators (Cell Boundary -> Single Face)
  • Aufbrechen der Face Data Felder. We need one pointer/index per face.
  • Mithilfe meiner Marker fuer gewisse Faces space-time Face Data speichern
  • Den space Prolongationsoperator mit einem space-time Operator ersetzen (Face Prolongation -> "Volume" Prolongation (vorhanden))
  • Counter im State einfuehren und dann entsprechend des Wertes nur bestimmte Levels an* [ ] und ausschalten, ginge mit Hilfe Deiner level Information in den MappingSpecifications
  • Nur am Anfang eines Batches die alte Loesung sichern (implementiert)
  • Batchgroesse entsprechend des aktuellen tiefsten Verfeinerungslevels berechnen
  • Rollback zu Anfang des Batches, falls das Gitter nicht gepasst hat.

Some implementational aspects

Some preparational work has already been done.

  • No changes to the current faceIntegral procedure need to be performed as we already skip the integral where a Leaf cell shares an interface with a Refined ("Parent") cell.

    const int dofsPerFace = getBndFluxSize();
        for (int direction=0; direction<DIMENSIONS; direction++) {
          for (int orientation=0; orientation<2; orientation++) {
            const int faceIndex=2*direction+orientation;
            if ( cellDescription.getFacewiseAugmentationStatus(faceIndex)<MaximumAugmentationStatus ) { // ignore Ancestors
              double* const lFhbnd = static_cast<double*>(cellDescription.getFluctuation()) + dofsPerFace * faceIndex;
              faceIntegral(output,lFhbnd,direction,orientation,0/*implicit conversion*/,0,cellDescription.getSize(),
                           cellDescription.getTimeStepSize(),addToUpdate);
            }
          }
        }
Edited Sep 06, 2019 by Dominic Etienne Charrier
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: exahype/ExaHyPE-Engine#295