Gradient transformations in functional
Nobody has claimed this yet.
- 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:
- Interpolate, which goes from L-vector to Q-vector (DOFS to primal fields and their gradients at quadrature points)
- Apply constitutive function, which goes from Q-vector to Q-vector (fields and gradients to conjugate fluxes at quadrature points)
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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