Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Trilinos
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 936
    • Issues 936
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • James Willenbring
  • Trilinos
  • Issues
  • #1383

Closed
Open
Created Jun 01, 2017 by James Willenbring@jmwilleMaintainer

Panzer: Proposed modification to Panzer::BasisValues2

Created by: seamill

Currently the BasisValues2 class incorporates everything associated with a basis for a specific integration rule. This includes things that have nothing to do with the integration rule (e.g. basis coordinates). This makes it tricky to look up a basis rule in the workset without knowing what integration rules are available (at least with the recently added access functions).

I propose we split BasisValues2 into BasisIntegrationValues (PureBasis + IntegrationRule information) and BasisValues (just values associated with the basis).

This way we can have two separate lookups within the workset with different requirements. One needs just a BasisDescriptor (returns BasisValues), the other requires both a BasisDescriptor and an IntegrationRule (returns BasisIntegrationValues).

Within BasisValues we would have:

  • basis coordinates
  • basis reference coordinates (w.r.t. cell primitive)
  • basis vectors (unit basis vector along vector basis direction)
  • weighted basis vectors (basis vector scaled by the jacobian -> face area or edge length)
  • basis reference vectors (w.r.t. cell primitive)
  • basis orientation (not sure what this looks like yet, but it needs to be stored with the basis instead of just the DOFManager/Indexer)
  • jacobian+inverse+determinant (values at basis coordinates - probably not necessary)

Some of the above would be useful for evaluating functions at the points associated with a basis, other stuff is nice to have when plotting.

Within BasisIntegrationValues we would have almost everything we currently have in BasisValues2.

This modification will also help with consolidating the 4 'evaluateValues' calls we have in BasisValues2. It will also help reduce the allocations for basis information when we have multiple integration rules associated with a single basis (e.g. with DG).

Interested parties @eric-c-cyr @rppawlo @egphill

Assignee
Assign to
Time tracking