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

JDBetteridge/merge finat gem #95

Draft
wants to merge 735 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
735 commits
Select commit Hold shift + click to select a range
13bf864
relable variable in AAW, add (nonworking) MTW
rckirby Nov 20, 2019
2f0e0bd
Add TOMS zany element paper to citations list
wence- Feb 4, 2020
392d776
WIP: direct serendipity
rckirby Feb 5, 2020
f37666b
Work on direct serendipity.
rckirby Feb 7, 2020
b5e4e63
WIP: direct serendipity
rckirby Feb 5, 2020
e0b82ac
Work on direct serendipity.
rckirby Feb 7, 2020
5ad4b0d
Complete docstring for physical_points
wence- Feb 8, 2020
99d841e
Clean up direct serendipity
wence- Feb 8, 2020
e270331
Fix dS2
rckirby Feb 9, 2020
6e2f602
Merging
rckirby Feb 9, 2020
d008b58
Boilerplate for trimmed serendipity
rckirby Feb 27, 2020
ace0524
Fix inheritance
rckirby Feb 27, 2020
130906b
Merge remote-tracking branch 'origin/master' into bdmc
rckirby Mar 5, 2020
618139d
working on plumbing--added TrimmedSerendipityCurl3
Justincrum Mar 27, 2020
91ce561
Plumbing changes for Sminus.py to work in 3d.
Justincrum Apr 1, 2020
32888da
First attempt at the basis transformation for conforming Arnold-Winther.
FAznaran Apr 4, 2020
6f846ff
Corrected the call of AWc basis_transformation of that of AWnc.
FAznaran Apr 8, 2020
bc69643
Small edits
pefarrell Apr 8, 2020
2df7d7b
Plumbing for SminusDiv.py
Justincrum Apr 14, 2020
19c1cc7
AWc had been failing to chop off the AWnc constraint dofs.
FAznaran May 12, 2020
e7a1851
AWc now gets constructed, but diverges.
FAznaran May 12, 2020
33c8e0e
WIP: aw.py is still wrong.
rckirby May 14, 2020
4aeb920
WIP: AW elements
rckirby May 14, 2020
ae23ff0
update scaling in W for aWc
rckirby May 19, 2020
f550608
Update scaling in AWnc element
rckirby May 27, 2020
0e4fc3b
WIP AW
rckirby May 29, 2020
ea4eb49
The AWc transformation now seems to be working.
FAznaran Jun 2, 2020
d2ddc0e
Plausible rescaling of aw dofs
rckirby Jun 2, 2020
0d1ba73
Update AW dof scaling to improve conditioning
rckirby Jun 2, 2020
162d774
Fix vertex transformations in AW
rckirby Jun 22, 2020
1c13e45
put back AW
rckirby Jun 22, 2020
eee65b3
Merge remote-tracking branch 'origin/master' into directSerendipity
rckirby Jun 22, 2020
6ae6cc6
WIP: general order
rckirby Jun 23, 2020
5018844
Generalize direct serendipity to general order
rckirby Jun 26, 2020
1ad997f
Remove unneeded file
rckirby Jun 26, 2020
3d10efb
Clean up some flake8
rckirby Jun 29, 2020
6fe4b50
Address most of Lawrence's comments. Need to figure out geometric_di…
rckirby Jun 29, 2020
6479e52
enriched: Return subelement for single argument
wence- Jul 1, 2020
9269971
fix a bug
rckirby Jul 2, 2020
7bcbcf0
Add helper function; fix typos
rckirby Jul 3, 2020
b09358f
Merge pull request #59 from FInAT/wence/fix/unroll-enriched
wence- Jul 8, 2020
827ee49
Small fix to flake8 & a big
rckirby Jul 9, 2020
1c91fb9
Add a test for the direct serendipity
rckirby Jul 10, 2020
d473875
see if this helps travis
rckirby Jul 10, 2020
e72e3db
address miklos' concerns on test
rckirby Jul 10, 2020
8f4d7d6
see if travis like .dot instead of @
rckirby Jul 10, 2020
d9a45ec
simplify mapping class via gem.Literal
rckirby Jul 10, 2020
a7f51fa
Put back
rckirby Jul 10, 2020
6725eec
Cultic deprogramming
rckirby Jul 10, 2020
ef5ab5b
Update numpy requirement
rckirby Jul 10, 2020
4721d22
Add a test for Morley using the gem interpreter.
rckirby Jul 10, 2020
bc1ba90
Refactor FIAT-based physical mapping into a separate file to facilita…
rckirby Jul 10, 2020
d012ada
Wrap some stuff into gem:
rckirby Jul 10, 2020
d9720f1
Add (broken) AWc test for debugging purposes
rckirby Jul 10, 2020
d8f3134
WIP: redo AW test to include Piola
rckirby Jul 10, 2020
55192c5
Test now runs but fails. To debug later
rckirby Jul 10, 2020
74528ac
Update test for AW
rckirby Jul 13, 2020
359c3ed
Clean up test
rckirby Jul 13, 2020
5014d53
Turn of doff scaling
rckirby Jul 13, 2020
7e6715b
Support variant when creating RT/BDM/Nedelec elements
FabianL1908 May 7, 2020
4444f42
fix entity_closure_dofs
rckirby Jul 16, 2020
55fbaa9
Merge pull request #56 from FInAT/fabianL/feature/interpolation-nodes
wence- Jul 21, 2020
71ec07a
Merge branch 'master' into bdmc
pefarrell Jul 22, 2020
a530283
Fix bug in higher-order elements
rckirby Aug 5, 2020
98014a3
Remove comments/flake8
rckirby Aug 5, 2020
6a7e32d
Another cleanup, including comments
rckirby Aug 5, 2020
4bb6a33
Add KMV elements (WIP)
rckirby Aug 11, 2020
8127dae
Get docs building without warnings
wence- Aug 13, 2020
ac6021d
Actions to build, test, and autopublish docs
wence- Aug 13, 2020
4374008
Remove travis config
wence- Aug 13, 2020
9f58822
Merge pull request #61 from FInAT/wence/docs
wence- Aug 14, 2020
46c4983
enriched: accept generator in constructor
wence- Aug 10, 2020
6bee36c
Implement RestrictedElement
wence- Jul 24, 2020
e6e39d1
Add tests for restricted elements
wence- Aug 14, 2020
1e88388
Merge pull request #60 from FInAT/wence/feature/restricted
wence- Aug 15, 2020
d1ada2a
Merge branch 'master' into pefarrell/aaw
rckirby Aug 18, 2020
47417a1
add citations, fix flake8
rckirby Aug 18, 2020
c39dea7
remove pytest import
rckirby Aug 18, 2020
07fa090
Fix citations
rckirby Aug 18, 2020
014a61e
DROP THIS COMMIT BEFORE MERGE
miklos1 Aug 19, 2020
dcdd4ef
Fix age-old typo
miklos1 Aug 19, 2020
282318b
Delete trailing whitespace
miklos1 Aug 19, 2020
25f0bf8
Improve names per Lawrence's request
miklos1 Aug 19, 2020
a13962e
Avoid using local imports
miklos1 Aug 19, 2020
554cfaa
Merge branch 'master' into directSerendipity
miklos1 Aug 19, 2020
4ba1be6
Add symengine and sympy to requirements
wence- Aug 19, 2020
270a361
sympy2gem: Handle symengine objects too
wence- Aug 19, 2020
46e8c19
Use symengine for direct Serendipity element
wence- Aug 19, 2020
8c36952
sympy2gem: Explicitly cast to int/float
wence- Aug 19, 2020
864ec23
Make use of symengine optional (defaults off)
wence- Aug 19, 2020
ae6eb5c
Merge pull request #64 from FInAT/miklos1/fix-requirements
wence- Aug 20, 2020
0d3aa15
Update README.md
miklos1 Aug 20, 2020
bd54cb7
Now using a direct construction of internal Lagrange polynomials. Al…
rckirby Aug 20, 2020
bb78567
Now using a direct construction of internal Lagrange polynomials.
rckirby Aug 20, 2020
487700f
Cache symbolic basis functions on element
wence- Aug 21, 2020
6b2a8f0
merging
rckirby Aug 21, 2020
b0e940b
Introduce property 'fiat_equivalent' of FInAT elements
miklos1 Aug 22, 2020
78a30b2
Implement .fiat_equivalent for most elements
miklos1 Aug 22, 2020
1ffc4b3
Add FIAT wrapper for Bernstein elements
miklos1 Aug 22, 2020
bc45e49
Add NodalEnrichedElement wrapper
miklos1 Aug 22, 2020
5ffc968
Remove most local imports
miklos1 Aug 22, 2020
13eadf2
Address PR comments
miklos1 Aug 24, 2020
32fbebe
Merge pull request #65 from FInAT/miklos1/update-readme
miklos1 Aug 24, 2020
48ecfe8
Merge pull request #58 from FInAT/directSerendipity
miklos1 Aug 24, 2020
838ab25
Use install_requires instead of requirements-git.txt
miklos1 Aug 24, 2020
baf4175
Restore requirements files to original
miklos1 Aug 24, 2020
7058bfa
Merge pull request #68 from FInAT/miklos1/install_requires
rckirby Aug 24, 2020
95e394a
Ignore FIAT.DiscontinuousRaviartThomas
miklos1 Aug 25, 2020
863eb90
Merge pull request #67 from FInAT/miklos1/scatter-fiatinterface
wence- Aug 25, 2020
90d4c3c
remove comments in test code
rckirby Aug 25, 2020
4b5df4a
rename mpping
rckirby Aug 25, 2020
fbf595b
mppng --> mapping in morley test
rckirby Aug 25, 2020
1eda6a6
Refactor edge transformations; add entity_closure_dofs
rckirby Aug 26, 2020
23059b8
Merging master in.
rckirby Aug 26, 2020
01c733f
Revert an indexing change that broke things; fix direct serendipity t…
rckirby Aug 26, 2020
f1fc89b
Merge pull request #63 from FInAT/pefarrell/aaw
rckirby Aug 28, 2020
825bd3c
Fix tabulation for zany elements
wence- Aug 28, 2020
273d570
Merge pull request #69 from FInAT/wence/fix/zany
wence- Aug 28, 2020
53efe1b
More stuff for SminusCurl.
Justincrum Sep 8, 2020
238633e
Add citations for KMV elements
rckirby Sep 10, 2020
15444f9
Merge pull request #70 from FInAT/KMV
wence- Sep 10, 2020
6a47031
Merge remote-tracking branch 'origin' into trimmedSerendipity
Justincrum Sep 22, 2020
1cbbda9
Fixed something having variant in it.
Justincrum Sep 25, 2020
72fcda0
Always give weights to a QuadratureElement.
pefarrell Nov 27, 2020
9a4db73
Merge pull request #72 from FInAT/pefarrell/fix/quadrature-element-we…
wence- Nov 27, 2020
2b1239d
Merge remote-tracking branch 'origin/master' into bdmc
Dec 16, 2020
fe704de
Update package names for installation CI
ReubenHill Feb 5, 2021
34b3da4
Merge pull request #74 from FInAT/ReubenHill/fix-install
wence- Feb 5, 2021
42dbd19
Make symengine an optional dependency
wence- Mar 10, 2021
2dabc83
Merge pull request #76 from FInAT/wence/optional-symengine
wence- Mar 11, 2021
bcf11ba
Small boilerplate change.
Mar 30, 2021
e8e7795
Add docstrings to PointSingleton and PointSet
ReubenHill Apr 29, 2021
1219f01
Merge pull request #80 from FInAT/ReubenHill/patch-pointset-2
ReubenHill Apr 30, 2021
a935c31
Add optional rule arg to quadrature_element
ReubenHill Aug 13, 2020
12311c4
Use @cached_property in PointSingleton
ReubenHill Aug 20, 2020
46f229f
Preliminary attempts at patching up conditioning of the AW elements.
FAznaran May 19, 2021
db6b904
New UnknownPointSet for runtime known points
ReubenHill Aug 20, 2020
5e1beac
Create QuadratureElement from ref cell and rule
ReubenHill May 11, 2021
6de20e2
QuadratureElement FIAT equivalent with unknown points
ReubenHill May 17, 2021
5825575
Condition number of AW mass matrices appears to be O(1) under refinem…
FAznaran May 19, 2021
25013d2
Get rid of some repeat code.
FAznaran May 20, 2021
3b75923
Merge pull request #81 from FInAT/ReubenHill/0d-mesh-interpolation-hack
dham Jun 1, 2021
fd1f495
Merging
rckirby Jun 4, 2021
23af5ea
Deal with flake8 issues.
FAznaran Jun 8, 2021
790df4e
Compare to spatial dim when making QuadratureElement
ReubenHill Jul 13, 2021
7308491
Merge pull request #91 from FInAT/ReubenHill/patch_quadrature_el
wence- Jul 14, 2021
8359424
Ensure literals in point evaluation are floats
wence- Aug 18, 2021
db137ce
Merge pull request #92 from FInAT/wence/fix/point-eval-literals
wence- Aug 18, 2021
809f3c8
Add dual_basis and dual_evaluation to elements
ReubenHill May 27, 2020
3ba424b
DO NOT MERGE: target correct TSFC branch
ReubenHill Jul 27, 2021
3f6543f
dual_evaluation: generalise methods
ReubenHill Aug 19, 2021
b8fafde
tensorfiniteelement: Tidy dual_basis and dual_evaluation
ReubenHill Aug 19, 2021
567111a
base: generalise dual evaluation routine
wence- Aug 19, 2021
7f96034
tensor product: Simplify dual basis construction
wence- Aug 19, 2021
2c3a915
fiat: simplify translation of FIAT dual to FInAT dual
wence- Aug 19, 2021
526960f
dual_evaluation and dual_basis comment/doc/name improvements
wence- Aug 19, 2021
0013181
QuadratureElement: implement dual_basis for all schemes
ReubenHill Aug 20, 2021
0436aa3
remove sparse lib dependency
ReubenHill Aug 20, 2021
204f588
dual_basis: make a cached property
ReubenHill Aug 23, 2021
c5c0d0e
fiat: Error if dual_basis uses Functional.deriv_dict
ReubenHill Aug 24, 2021
314cab6
Merge pull request #89 from FInAT/ReubenHill/finat-dual-eval
wence- Aug 26, 2021
7434457
Revert "DO NOT MERGE: target correct TSFC branch"
wence- Aug 31, 2021
edfd1fc
tfe: Implement entity_dofs
wence- Aug 31, 2021
2132a2f
Merge pull request #97 from FInAT/wence/feature/tfe-entity-dofs
pefarrell Aug 31, 2021
aa47ad5
Give discontinuous elements a dual
wence- Sep 3, 2021
4409209
orientations: define entity_orientations() method for FlattenedDimens…
ksagiyam Apr 21, 2021
e92715e
Merge pull request #87 from FInAT/ksagiyam/orientation
dham Sep 30, 2021
a1e52d7
Merge remote-tracking branch 'origin/master' into AWconditioning
FAznaran Oct 5, 2021
c979533
Merge pull request #88 from FInAT/AWconditioning
rckirby Oct 7, 2021
47dfa3d
Add is_mixed property to EnrichedElement
connorjward Nov 4, 2021
50dfff2
Add Real element
connorjward Nov 17, 2021
74f7305
Added wrapper for FIAT.FDMElement
pbrubeck Dec 7, 2021
1aab853
Merge pull request #101 from connorjward/connorjward/new-pyop2-api
dham Dec 8, 2021
869e107
add FDMHermite element diagonalizing the biharmonic operator in 1D an…
pbrubeck Jan 17, 2022
8b08fe0
Merge pull request #100 from FInAT/pbrubeck/fdm-element
dham Feb 3, 2022
78c566c
wrap discontinuous FDM elements
pbrubeck Apr 13, 2022
8bd8f79
Rename FDM elements
pbrubeck May 12, 2022
0f4429a
tensor_product: Fix shape of dual basis
wence- Sep 3, 2021
8ae83f6
hdivcurl: Implement dual_basis
wence- Sep 3, 2021
026ed45
Merge remote-tracking branch 'origin/master' into trimmedSerendipity
rckirby Jun 23, 2022
6ff65f8
Disable entity_permutations for trimmed serendipity elements
rckirby Jun 24, 2022
a775ae1
flake8
rckirby Jun 24, 2022
c0da35c
Fix variant option for Nedelec (inadvertently deleted on merge)
rckirby Jun 27, 2022
a3b88e2
Fix more in variant args
rckirby Jun 27, 2022
15e4775
Merge pull request #102 from FInAT/trimmedSerendipity
rckirby Jun 27, 2022
a5cb72f
Merge pull request #98 from FInAT/wence/feature/hdivcurl-dual
ReubenHill Jun 29, 2022
326ba57
Merge remote-tracking branch 'origin/master' into pbrubeck/fdm-discon…
pbrubeck Jul 4, 2022
0dab01c
add FDMQuadrature element
pbrubeck Jul 11, 2022
008b0f9
fiat_element: do not Zero()
ksagiyam Aug 3, 2022
4112fb8
Merge pull request #103 from FInAT/ksagiyam/fix-issue-274-retry
ksagiyam Sep 8, 2022
a137ffd
Merge remote-tracking branch 'origin/master' into pbrubeck/fdm-discon…
pbrubeck Sep 9, 2022
99d3c69
wrap FIAT.Legendre and FIAT.IntegratedLegendre
pbrubeck Oct 24, 2022
c0f18f9
orientation: handle extrinsic orientations in tensor product elements
ksagiyam Nov 10, 2022
bac2c41
tensor_product: update factor_point_set for hex
ksagiyam Nov 16, 2022
3f28113
Merge pull request #104 from FInAT/ksagiyam/orientations
ksagiyam Dec 8, 2022
0082b62
Merge remote-tracking branch 'origin/master' into pbrubeck/fdm-discon…
pbrubeck Dec 12, 2022
f84a327
Move to testing against Python 3.8
wence- Jan 11, 2023
8ba34f1
Update workflow specifications
wence- Jan 11, 2023
d4c3fa5
Merge pull request #106 from FInAT/wence/update-actions
wence- Jan 11, 2023
90bbd8d
Expand EnrichedElement (#105)
pbrubeck Jan 11, 2023
719fa58
Merge branch 'master' into pbrubeck/fdm-discontinuous
Jan 18, 2023
cd1d528
Merge pull request #107 from FInAT/pbrubeck/fdm-discontinuous
dham Feb 8, 2023
cec3ea3
refactor: make tensorproduct permutations in FIAT
ksagiyam Apr 4, 2023
47f6c37
Merge pull request #108 from FInAT/ksagiyam/check_cell_reflection
dham Apr 19, 2023
e53c27a
Merge branch 'master' into bdmc
tommbendall Jul 25, 2023
59e8fc9
update elements to handle lack of "entity_permutations" correctly
tommbendall Jul 25, 2023
f360e49
fix lint
tommbendall Jul 26, 2023
f493084
Merge pull request #55 from FInAT/bdmc
dham Sep 20, 2023
ded295d
Move ufl legacy elements to finat
mscroggs Oct 16, 2023
e868748
final.ufl in setup.py
mscroggs Oct 16, 2023
84cf8f6
flake
mscroggs Oct 16, 2023
0c12e05
finat not final
mscroggs Oct 16, 2023
df4fe7f
add HDiv and HCurl functions
mscroggs Nov 8, 2023
e771a9e
import as
mscroggs Nov 8, 2023
666e924
implement CallableSobolevSpace
mscroggs Nov 8, 2023
8296733
Subclass spectral Lagrange elements
pbrubeck Nov 10, 2023
7da85a6
lint E721 do not compare types, for exact checks use is
pbrubeck Nov 10, 2023
163e839
same lint again
pbrubeck Nov 10, 2023
b7d4636
use correct super constructor
pbrubeck Nov 10, 2023
9293f8f
Merge pull request #112 from FInAT/pbrubeck/spectral-subclassing
pbrubeck Nov 13, 2023
1580f3e
DO NOT MERGE: Update requirements-git.txt
ReubenHill Nov 15, 2023
a7c12ac
Update requirements-git.txt
ksagiyam Nov 15, 2023
4066827
Merge pull request #111 from FInAT/mscroggs/ufl-elements
ksagiyam Nov 15, 2023
eb379ae
Add missing embedded_superdegree and embedded_subdegree properties (#…
connorjward Nov 21, 2023
f471015
Tabulate Ciarlet generically
pbrubeck Nov 21, 2023
91ac36b
DROP BEFORE MERGE switch fiat branch
pbrubeck Nov 21, 2023
4dcc579
DROP BEFORE MERGE remove egg fragment
pbrubeck Nov 21, 2023
89cd9f3
remove singledispatch
pbrubeck Nov 22, 2023
3a46d95
Allow embedded_subdegree and embedded_superdegree to handle tuples (#…
connorjward Nov 22, 2023
dccd2d6
undo branching
dham Nov 22, 2023
e2805c4
Merge pull request #115 from FInAT/pbrubeck/fix/point-evaluation
dham Nov 22, 2023
4ae4dfb
Support Lagrange/IntegratedLegendre variants
pbrubeck Dec 31, 2023
a9088eb
Merge pull request #117 from FInAT/pbrubeck/variants
dham Feb 7, 2024
19d02aa
Fix dual basis for singleton weight
pbrubeck Feb 8, 2024
e3a869d
Merge pull request #121 from FInAT/pbrubeck/fix/dual-basis-singleton
pbrubeck Feb 9, 2024
f352325
C0/C1 Macroelements (#123)
pbrubeck May 1, 2024
3b75c9e
Add Johnson Mercier as PhysicallyMappedElement (#126)
pbrubeck Jun 19, 2024
dc7bba4
GEM: sympy2gem conditional support (#128)
pbrubeck Jun 26, 2024
3dba577
High order HCT (#129)
pbrubeck Jul 11, 2024
a01db7c
sympy2gem: Fix boolean type checking (#130)
pbrubeck Jul 11, 2024
a04cd20
HCT: basis transformation for hierarchical edge functions (#131)
pbrubeck Jul 17, 2024
1ae74da
Add QuadraticPowellSabin{6|12} (#132)
rckirby Jul 23, 2024
eaee8fe
RestrictedElement: fixes for prisms (#133)
pbrubeck Jul 30, 2024
5914471
finat.ufl.RestrictedElement: support restriction_domain="reduced" (#135)
pbrubeck Aug 16, 2024
3a7d154
Use md5 to hash FiniteElementBase (#134)
JDBetteridge Sep 4, 2024
b65720d
sympy2gem: if-then-else (#137)
pbrubeck Sep 4, 2024
e72e533
Update CI (#136)
JDBetteridge Sep 11, 2024
ba0e9bb
Add physically mapped Stokes elements (#139)
pbrubeck Oct 8, 2024
56cf026
Guzman-Neilan H1(div) macroelement (#140)
pbrubeck Oct 16, 2024
6bae4c6
Merge remote-tracking branch 'finat/master' into JDBetteridge/merge_f…
JDBetteridge Oct 23, 2024
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
36 changes: 36 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: github pages

on:
push:
branches:
- master

jobs:
build_docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup python
uses: actions/setup-python@v3
with:
python-version: 3.12
- name: Install dependencies
run: |
python -m pip install -r requirements.txt
python -m pip install sphinx
- name: Install
run: |
python -m pip install .
- name: Build docs
run: |
make -C docs html
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/build/html
publish_branch: gh-pages
enable_jekyll: false
allow_empty_commit: false
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
42 changes: 42 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build and test

on:
# Run on pushes to master
push:
branches:
- master
# And all pull requests
pull_request:


jobs:
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Test against multiple Python versions
strategy:
# Don't immediately kill all if one Python version fails
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
# Steps represent a sequence of tasks that will be executed as
# part of the jobs
steps:
- uses: actions/checkout@v3
- name: Setup python
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install -r requirements.txt
python -m pip install flake8 pytest
- name: Lint
run: |
python -m flake8 .
- name: Install
run: |
python -m pip install .
- name: Test
run: |
python -m pytest test
48 changes: 47 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,50 @@
/doc/sphinx/source/api-doc
release/

/doc/sphinx/source/_build/
/doc/sphinx/source/_build/

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.cache
nosetests.xml
coverage.xml

# Translations
*.mo
*.pot

# Django stuff:
*.log

# Sphinx documentation
docs/_build/
/docs/source/finat.rst
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,4 @@ Robert Kirby <[email protected]> kirby <[email protected]>
Robert Kirby <[email protected]> kirby <[email protected]>
Robert Kirby <[email protected]> kirby <[email protected]>
Matthew Knepley <[email protected]> knepley <knepley@knepley-laptop>
Reuben Nixon-Hill <[email protected]> <[email protected]>
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2014-2020

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
PYTHONPATH := $(PWD):$(PYTHONPATH)

lint:
flake8 .

test: lint
57 changes: 57 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# FInAT: a smarter library of finite elements

Unlike [FIAT](https://github.com/FEniCS/fiat "FInite element Automatic
Tabulator"), “**F**InAT **I**s **n**ot **A** **T**abulator.” Instead,
it provides symbolic expressions for the evaluation of finite
elements. Thus FInAT can express the structure that is intrinsic to
some finite elements, which a form compiler can exploit to
automatically:

- sum factorise continuous, discontinuous, *H*(div) and *H*(curl)
conforming elements on cuboid cells;
- optimise evaluation at collocated quadrature points when
under-integration is requested; and
- optimise evaluation on vector and tensor elements.

Furthermore, FInAT is equipped to provide symbolic expressions for
basis transformations when the caller implements an interface capable
of providing (symbolic expressions for) the required geometric
quantities (such as Jacobians, normals, or tangents), which
facilitates the implementation of finite elements such as Hermite,
Morley, Bell, and Argyris within an automatic code generation
framework.

The goal of FInAT is to be a “single source of truth” for finite
elements. This includes not only basis function evaluation, like FIAT,
but also structural and algorithmic considerations as well as
reference element transformations. Symbolic expression languages and
form compilers can then exploit this information in an
element-independent manner.

FInAT is integrated with
[TSFC](https://github.com/firedrakeproject/tsfc "Two-Stage Form
Compiler") and is a component of
[Firedrake](https://firedrakeproject.org/), “an automated system for
the portable solution of partial differential equations using the
finite element method.” To facilitate the exchange of symbolic
expressions between the element library on the one hand, and the form
compiler on the other, they need to agree on a common language. Where
FIAT communicated with the form compiler through numerical arrays,
FInAT communicates with the form compiler by exchanging GEM
expressions. GEM is the intermediate language used in both TSFC and
FInAT to describe tensor algebra.

## References

1. Miklós Homolya, Robert C. Kirby, and David A. Ham (2017).
“Exposing and exploiting structure: optimal code generation for
high-order finite element methods.” _arXiv preprint
arXiv:1711.02473._
1. Robert C. Kirby, and Lawrence Mitchell (2019). “Code generation for
generally mapped finite elements.” _ACM Transactions on
Mathematical Software (TOMS)_, 45(4), pp. 1-23.

## License

All files in this repository are available under the MIT license, see
the LICENSE file for details.
Loading
Loading