Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • O ogs
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 98
    • Issues 98
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 40
    • Merge requests 40
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ogsogs
  • ogs
  • Merge requests
  • !4153

TRM: Separate constitutive setting and shape matrix computations

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Christoph Lehmann requested to merge chleh/ogs:trm-split-off-constitutive-setting into master May 12, 2022
  • Overview 41
  • Commits 1
  • Pipelines 10
  • Changes 6

This MR splits the TRM assembly into a "constitutive part" depending not directly on shape matrices and a "structural" part that combines the coefficients computed in the constitutive part with the shape matrices and adds them to the local Jacobian and rhs.

This MR is a first small step in a large effort to restructure the local assemblers of processes. In the end the local assemblers will be much more modular, which will allow easy customization (e.g. for special constitutive relations) without excessive code duplication.

Dear reviewers, please keep in mind that in the next 3 months almost every single line touched by this MR will change again. This MR is a snapshot of a work in progress. Some developments have been started, but not finished, yet. Since this MR comes directly from my ongoing massive restructuring work, IMHO it's unfortunately not practical to split it into smaller sub-MRs.

Some features of this MR:

  • constitutive/structural split
  • constitutive setting does not depend on shape matrices and is in a separate translation unit. This might be beneficial for compilation time, especially when recompiling after small, local changes in the cpp file.
  • first draft of a matrix coefficient naming scheme (e.g. K_TT_X_NTN, search for "Conventions" in the MR diff)
  • computeSecondaryVariableConcrete() reuses the constitutive setting. Less efficient, but avoids code duplication. This will be much more efficient in the end.
  • split the local assembly into smaller parts: overall assembly, single IP assembly, mass lumping, adding to local matrices
  • first step to split the constitutive setting into smaller parts, work in progress: The computed data are already put in smaller groups (e.g. ConstitutiveSettingEqU), but their computation is still monolithic (single method ConstitutiveSetting<DisplacementDim>::eval())
  • added shortcuts for matrix block access: block_uu() etc.
  • added more versatile overloads for IP data access.
Edited May 13, 2022 by Christoph Lehmann
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: trm-split-off-constitutive-setting