GEOS-DEV / GEOS-DEV/GEOS

Finite Element Formulation follow up.

Open
#1,094 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
287
Forks
109
Avg merge
4d 41m
Merged PRs (30d)
5

Description

The finite element formulations PR #1014 needs to be extended a bit. The following tasks should be completed soon:

  • Provide shape function gradient methods for the triangle and quadrilateral. While they are not currently needed, this would complete the functionality.
  • Recast the FiniteElementDispatch to use a generic dispatch function as suggested by @klevzoff. Propagate this generic dispatch function throughout the code. (constitutive dispatch, etc). The original comment:

I would like to reiterate my comment https://github.com/GEOSX/GEOSX/pull/1014#discussion_r463254636
With a variadic recursive dispatcher class you could make this whole function be just

GenericDispatch< H1_Hexahedron_Lagrange1_GaussLegendre2,
                 H1_Wedge_Lagrange1_Gauss6,
                 H1_Tetrahedron_Lagrange1_Gauss1,
                 H1_Pyramid_Lagrange1_Gauss5 >::dispatch( input,
                                                          std::forward< LAMBDA >( lambda ),
                                                          "finiteElement::dispatch3D()" );

and not worry about naming of temporaries, etc.

Originally posted by @klevzoff in https://github.com/GEOSX/GEOSX/pull/1014

  • Determine whether or not we want to use the ObjectCatalog in place of the FiniteElementDiscretization::Factory.

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 reviewing PR #1014 and the referenced discussion about generic dispatch. Trace FiniteElementDispatch, constitutive dispatch, the triangle and quadrilateral shape-function APIs, and FiniteElementDiscretization::Factory versus ObjectCatalog. Done means completing the listed gradient methods, propagating the dispatch design, and deciding the catalog approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
hpc
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.