Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Single source of truth #120

Merged
merged 3 commits into from
Dec 20, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions FIAT/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
from FIAT.mixed import MixedElement # noqa: F401
from FIAT.restricted import RestrictedElement # noqa: F401
from FIAT.quadrature_element import QuadratureElement # noqa: F401
from FIAT.tensor_product import TensorProductElement # noqa: F401
from FIAT.enriched import EnrichedElement # noqa: F401
from FIAT.nodal_enriched import NodalEnrichedElement # noqa: F401
from FIAT.discontinuous import DiscontinuousElement # noqa: F401

# Import finite element classes
from FIAT.argyris import Argyris
Expand All @@ -24,9 +28,9 @@
from FIAT.christiansen_hu import ChristiansenHu
from FIAT.johnson_mercier import JohnsonMercier
from FIAT.brezzi_douglas_marini import BrezziDouglasMarini
from FIAT.Sminus import TrimmedSerendipityEdge, TrimmedSerendipityFace # noqa: F401
from FIAT.SminusDiv import TrimmedSerendipityDiv # noqa: F401
from FIAT.SminusCurl import TrimmedSerendipityCurl # noqa: F401
from FIAT.Sminus import TrimmedSerendipityEdge, TrimmedSerendipityFace
from FIAT.SminusDiv import TrimmedSerendipityDiv
from FIAT.SminusCurl import TrimmedSerendipityCurl
from FIAT.brezzi_douglas_fortin_marini import BrezziDouglasFortinMarini
from FIAT.discontinuous_lagrange import DiscontinuousLagrange
from FIAT.discontinuous_taylor import DiscontinuousTaylor
Expand Down Expand Up @@ -56,10 +60,6 @@
from FIAT.hu_zhang import HuZhang
from FIAT.mardal_tai_winther import MardalTaiWinther
from FIAT.bubble import Bubble, FacetBubble
from FIAT.tensor_product import TensorProductElement
from FIAT.enriched import EnrichedElement
from FIAT.nodal_enriched import NodalEnrichedElement
from FIAT.discontinuous import DiscontinuousElement
from FIAT.hdiv_trace import HDivTrace
from FIAT.kong_mulder_veldhuizen import KongMulderVeldhuizen
from FIAT.fdm_element import FDMLagrange, FDMDiscontinuousLagrange, FDMQuadrature, FDMBrokenH1, FDMBrokenL2, FDMHermite # noqa: F401
Expand All @@ -76,13 +76,19 @@
"Crouzeix-Raviart": CrouzeixRaviart,
"Discontinuous Lagrange": DiscontinuousLagrange,
"S": Serendipity,
"SminusF": TrimmedSerendipityFace,
"SminusDiv": TrimmedSerendipityDiv,
"SminusE": TrimmedSerendipityEdge,
"SminusCurl": TrimmedSerendipityCurl,
"Brezzi-Douglas-Marini Cube Face": BrezziDouglasMariniCubeFace,
"Brezzi-Douglas-Marini Cube Edge": BrezziDouglasMariniCubeEdge,
"DPC": DPC,
"Discontinuous Taylor": DiscontinuousTaylor,
"Discontinuous Raviart-Thomas": DiscontinuousRaviartThomas,
"Hermite": CubicHermite,
"Hsieh-Clough-Tocher": HsiehCloughTocher,
"QuadraticPowellSabin6": QuadraticPowellSabin6,
"QuadraticPowellSabin12": QuadraticPowellSabin12,
"Alfeld-Sorokina": AlfeldSorokina,
"Arnold-Qin": ArnoldQin,
"Christiansen-Hu": ChristiansenHu,
Expand All @@ -102,12 +108,6 @@
"Nedelec 2nd kind H(curl)": NedelecSecondKind,
"Raviart-Thomas": RaviartThomas,
"Regge": Regge,
"EnrichedElement": EnrichedElement,
"NodalEnrichedElement": NodalEnrichedElement,
"QuadraticPowellSabin6": QuadraticPowellSabin6,
"QuadraticPowellSabin12": QuadraticPowellSabin12,
"TensorProductElement": TensorProductElement,
"BrokenElement": DiscontinuousElement,
"HDiv Trace": HDivTrace,
"Hellan-Herrmann-Johnson": HellanHerrmannJohnson,
"Gopalakrishnan-Lederer-Schoberl 1st kind": GopalakrishnanLedererSchoberlFirstKind,
Expand Down
125 changes: 93 additions & 32 deletions finat/__init__.py
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
from .fiat_elements import Bernstein # noqa: F401
from .fiat_elements import Bubble, CrouzeixRaviart, DiscontinuousTaylor # noqa: F401
from .fiat_elements import Lagrange, DiscontinuousLagrange, Real # noqa: F401
from .fiat_elements import DPC, Serendipity, BrezziDouglasMariniCubeEdge, BrezziDouglasMariniCubeFace # noqa: F401
from .fiat_elements import TrimmedSerendipityFace, TrimmedSerendipityEdge # noqa: F401
from .fiat_elements import TrimmedSerendipityDiv # noqa: F401
from .fiat_elements import TrimmedSerendipityCurl # noqa: F401
from .fiat_elements import BrezziDouglasMarini, BrezziDouglasFortinMarini # noqa: F401
from .fiat_elements import Nedelec, NedelecSecondKind, RaviartThomas # noqa: F401
from .fiat_elements import HellanHerrmannJohnson, Regge # noqa: F401
from .fiat_elements import GopalakrishnanLedererSchoberlFirstKind # noqa: F401
from .fiat_elements import GopalakrishnanLedererSchoberlSecondKind # noqa: F401
from .fiat_elements import FacetBubble # noqa: F401
from .fiat_elements import KongMulderVeldhuizen # noqa: F401
from .fiat_elements import Bernstein
from .fiat_elements import Bubble, CrouzeixRaviart, DiscontinuousTaylor
from .fiat_elements import Lagrange, DiscontinuousLagrange, Real
from .fiat_elements import DPC, Serendipity, BrezziDouglasMariniCubeEdge, BrezziDouglasMariniCubeFace
from .fiat_elements import TrimmedSerendipityFace, TrimmedSerendipityEdge
from .fiat_elements import TrimmedSerendipityDiv
from .fiat_elements import TrimmedSerendipityCurl
from .fiat_elements import BrezziDouglasMarini, BrezziDouglasFortinMarini
from .fiat_elements import Nedelec, NedelecSecondKind, RaviartThomas
from .fiat_elements import HellanHerrmannJohnson, Regge
from .fiat_elements import GopalakrishnanLedererSchoberlFirstKind
from .fiat_elements import GopalakrishnanLedererSchoberlSecondKind
from .fiat_elements import FacetBubble
from .fiat_elements import KongMulderVeldhuizen

from .argyris import Argyris # noqa: F401
from .aw import ArnoldWinther # noqa: F401
from .aw import ArnoldWintherNC # noqa: F401
from .hz import HuZhang # noqa: F401
from .bell import Bell # noqa: F401
from .bernardi_raugel import BernardiRaugel, BernardiRaugelBubble # noqa: F401
from .hct import HsiehCloughTocher, ReducedHsiehCloughTocher # noqa: F401
from .arnold_qin import ArnoldQin, ReducedArnoldQin # noqa: F401
from .christiansen_hu import ChristiansenHu # noqa: F401
from .alfeld_sorokina import AlfeldSorokina # noqa: F401
from .guzman_neilan import GuzmanNeilanFirstKindH1, GuzmanNeilanSecondKindH1, GuzmanNeilanBubble, GuzmanNeilanH1div # noqa: F401
from .powell_sabin import QuadraticPowellSabin6, QuadraticPowellSabin12 # noqa: F401
from .hermite import Hermite # noqa: F401
from .johnson_mercier import JohnsonMercier # noqa: F401
from .mtw import MardalTaiWinther # noqa: F401
from .morley import Morley # noqa: F401
from .trace import HDivTrace # noqa: F401
from .direct_serendipity import DirectSerendipity # noqa: F401
from .argyris import Argyris
from .aw import ArnoldWinther
from .aw import ArnoldWintherNC
from .hz import HuZhang
from .bell import Bell
from .bernardi_raugel import BernardiRaugel, BernardiRaugelBubble
from .hct import HsiehCloughTocher, ReducedHsiehCloughTocher
from .arnold_qin import ArnoldQin, ReducedArnoldQin
from .christiansen_hu import ChristiansenHu
from .alfeld_sorokina import AlfeldSorokina
from .guzman_neilan import GuzmanNeilanFirstKindH1, GuzmanNeilanSecondKindH1, GuzmanNeilanBubble, GuzmanNeilanH1div
from .powell_sabin import QuadraticPowellSabin6, QuadraticPowellSabin12
from .hermite import Hermite
from .johnson_mercier import JohnsonMercier
from .mtw import MardalTaiWinther
from .morley import Morley
from .trace import HDivTrace
from .direct_serendipity import DirectSerendipity

from .spectral import GaussLobattoLegendre, GaussLegendre, Legendre, IntegratedLegendre, FDMLagrange, FDMQuadrature, FDMDiscontinuousLagrange, FDMBrokenH1, FDMBrokenL2, FDMHermite # noqa: F401
from .tensorfiniteelement import TensorFiniteElement # noqa: F401
Expand All @@ -46,3 +46,64 @@
from .runtime_tabulated import RuntimeTabulated # noqa: F401
from . import quadrature # noqa: F401
from . import cell_tools # noqa: F401

# List of supported elements and mapping to element classes
supported_elements = {"Argyris": Argyris,
"Bell": Bell,
"Bernardi-Raugel": BernardiRaugel,
"Bernardi-Raugel Bubble": BernardiRaugelBubble,
"Bernstein": Bernstein,
"Brezzi-Douglas-Fortin-Marini": BrezziDouglasFortinMarini,
"Brezzi-Douglas-Marini Cube Face": BrezziDouglasMariniCubeFace,
"Brezzi-Douglas-Marini": BrezziDouglasMarini,
"Brezzi-Douglas-Marini Cube Edge": BrezziDouglasMariniCubeEdge,
"Bubble": Bubble,
"FacetBubble": FacetBubble,
"Crouzeix-Raviart": CrouzeixRaviart,
"Direct Serendipity": DirectSerendipity,
"Discontinuous Lagrange": DiscontinuousLagrange,
"Discontinuous Lagrange L2": DiscontinuousLagrange,
"Discontinuous Taylor": DiscontinuousTaylor,
"Discontinuous Raviart-Thomas": lambda *args, **kwargs: DiscontinuousElement(RaviartThomas(*args, **kwargs)),
"DPC": DPC,
"DPC L2": DPC,
"Hermite": Hermite,
"Hsieh-Clough-Tocher": HsiehCloughTocher,
"Reduced-Hsieh-Clough-Tocher": ReducedHsiehCloughTocher,
"QuadraticPowellSabin6": QuadraticPowellSabin6,
"QuadraticPowellSabin12": QuadraticPowellSabin12,
"Alfeld-Sorokina": AlfeldSorokina,
"Arnold-Qin": ArnoldQin,
"Reduced-Arnold-Qin": ReducedArnoldQin,
"Christiansen-Hu": ChristiansenHu,
"Guzman-Neilan 1st kind H1": GuzmanNeilanFirstKindH1,
"Guzman-Neilan 2nd kind H1": GuzmanNeilanSecondKindH1,
"Guzman-Neilan H1(div)": GuzmanNeilanH1div,
"Guzman-Neilan Bubble": GuzmanNeilanBubble,
"Johnson-Mercier": JohnsonMercier,
"Lagrange": Lagrange,
"Kong-Mulder-Veldhuizen": KongMulderVeldhuizen,
"Gauss-Lobatto-Legendre": GaussLobattoLegendre,
"Gauss-Legendre": GaussLegendre,
"Gauss-Legendre L2": GaussLegendre,
"Legendre": Legendre,
"Integrated Legendre": IntegratedLegendre,
"Morley": Morley,
"Nedelec 1st kind H(curl)": Nedelec,
"Nedelec 2nd kind H(curl)": NedelecSecondKind,
"Raviart-Thomas": RaviartThomas,
"Real": Real,
"S": Serendipity,
"SminusF": TrimmedSerendipityFace,
"SminusDiv": TrimmedSerendipityDiv,
"SminusE": TrimmedSerendipityEdge,
"SminusCurl": TrimmedSerendipityCurl,
"Regge": Regge,
"HDiv Trace": HDivTrace,
"Hellan-Herrmann-Johnson": HellanHerrmannJohnson,
"Gopalakrishnan-Lederer-Schoberl 1st kind": GopalakrishnanLedererSchoberlFirstKind,
"Gopalakrishnan-Lederer-Schoberl 2nd kind": GopalakrishnanLedererSchoberlSecondKind,
"Conforming Arnold-Winther": ArnoldWinther,
"Nonconforming Arnold-Winther": ArnoldWintherNC,
"Hu-Zhang": HuZhang,
"Mardal-Tai-Winther": MardalTaiWinther}
4 changes: 2 additions & 2 deletions finat/ufl/elementlist.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,8 @@ def show_elements():

register_element("S", None, 0, H1, "identity", (1, None), cubes)
register_element("DPC", None, 0, L2, "identity", (0, None), cubes)
register_element("BDMCE", None, 1, HCurl, "covariant Piola", (1, None), ("quadrilateral",))
register_element("BDMCF", None, 1, HDiv, "contravariant Piola", (1, None), ("quadrilateral",))
register_element("Brezzi-Douglas-Marini Cube Edge", "BDMCE", 1, HCurl, "covariant Piola", (1, None), ("quadrilateral",))
register_element("Brezzi-Douglas-Marini Cube Face", "BDMCF", 1, HDiv, "contravariant Piola", (1, None), ("quadrilateral",))
register_element("SminusE", "SminusE", 1, HCurl, "covariant Piola", (1, None), cubes[1:3])
register_element("SminusF", "SminusF", 1, HDiv, "contravariant Piola", (1, None), cubes[1:2])
register_element("SminusDiv", "SminusDiv", 1, HDiv, "contravariant Piola", (1, None), cubes[1:3])
Expand Down
Loading