llnl / llnl/smith

Gradient transformations in functional

Open
#722 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

discretization enhancement
Dominant language
C++
Stars
245
Forks
36
Avg merge
8d 23h
Merged PRs (30d)
4

Description

Inside of the control flow in the functional paradigm, we currently have the following steps:

  1. Interpolate, which goes from L-vector to Q-vector (DOFS to primal fields and their gradients at quadrature points)
  2. Apply constitutive function, which goes from Q-vector to Q-vector (fields and gradients to conjugate fluxes at quadrature points)
  3. Integrate, which goes from Q-vector to L-vector (turns fluxes into discrete forces conjugate to DOFS)

I suggest inserting an optional step between 1 and 2 that modifies the gradient. This could be some kind of projection operator of the volumetric part to avoid locking (which requires an integral over the element). It could also be used in 2D problems to define how to promote the field gradients to 3D. For example, in solid mechanics, plane strain just pads the 2D displacement gradient with zeros, while axisymmetric puts an entry in the (3,3) spot that depends on the radial coordinate of the quadrature point. This would simplify the constitutive functions by allowing them to be coded to the 3D case once and for all.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the functional control flow through Interpolate, Apply constitutive function, and Integrate. Define the interface and behavior for an optional gradient-transformation step, including the proposed volumetric projection and 2D-to-3D promotion; done means the control flow supports this step before constitutive evaluation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.