-
Notifications
You must be signed in to change notification settings - Fork 160
Firedrake meeting 2020 08 18
Date and time 2020-08-18 15:00UTC (16:00BST)
Pick Chair and Minuter.- ALL: (ongoing) triage the open issues and confirm if they are indeed still open (and perhaps provide labels)
- KS, (DH, LM): Document describing what we think the mixed domain interface should look like (and hence what is needed in UFL, and whether it matches the existing Fenics efforts). Try an alternative description and make previously agreed changes.
- **: Think about the correct mathematical formulation for Filtered
- ALL: Please review complex.
- DH: Only test PRs on master
- RH: On complex back merge master to fix conflicts
- ??: Build master on centos to catch errors
Present: RK, LM, JB, KS, CJC, DRS, IY, MK, NB, PHJK, SK, SV, WS
Apologies:
Batched blas stuff current candidate is MKL
RK: are there any licensing issues here.
JB: Would it work on ARM?
Action: All with MacOS systems, see if you can reproduce problem.
Creating a MeshHierarchy for IcosahedralMesh fails with File "mg_test.py", line 9, in mh = fd.MeshHierarchy(basemesh, ref_level) File "/Users/colincotter/firedrake/src/firedrake/firedrake/mg/mesh.py", line 99, in MeshHierarchy raise RuntimeError("Cannot refine parallel overlapped meshes " RuntimeError: Cannot refine parallel overlapped meshes (make sure the MeshHierarchy is built immediately after the Mesh)
See: https://gist.github.com/colinjcotter/2c3154c14c1532e3686eb2d32666a245 This is because IcosahedralMesh works by recursively refining an icosahedron and pushing out to the sphere. I'm not completely sure if it is due to the editing of the coordinate mesh, or the fact that we used Plex to refine the mesh twice when we create the Hierarchy (once for the base, once for the Hierarchy). Similar things arise with PeriodicMesh where Patrick has something on a branch. Patrick was wondering if there might be a general solution that solves both, but I need to understand the sphere case on its own first.
LM: Workaround is to make a "flat" sphere mesh then the hierarchy, and then push out every level in the hierarchy to make the higher-order sphere meshes.
A proper fix requires removing the "two-stage" mesh construction and just always growing halos straight away. The multigrid hierarchy creation should refine such a mesh and then remove the (now too big) halo and regrow it to the correct size. This requires some fiddling with dmplex submeshes and then keeping track of the relationship between coarse and fine cells.
UFL/Firedrake interfaces are converging (I think).
UFL:
- Vsub = ufl.Subspace(V) -> represents (shape, ) x (shape, ) matrix multiplied to the basis vector in TSFC
- vsub = ufl.Masked(v, Vsub)
LM: I think the (shape, ) * (shape, ) part is somewhat misleading, since it presupposes a particular type of subspace extraction. I guess this is saying Vsub
is obtained from V
by some projection, and we also get V \ Vsub
via Vsub.complement
?
Firedrake:
Low-level interfaces for ufl.Subspace:
- firedrake.ScalarSubspace -> diagonal thing
- firedrake.RotatedSubspace -> rotation thing
High-level interface specifically for boundary subspaces:
- firedrake.BoundarySubspace -> returns Subspaces used to apply u = g on boundary
New example: Dirichlet BC for Hermite element:
Some discussion of whether or not this solves the maths problem of strong bcs for Hermite elements. RCK to think about it.
Proposal to move to Mondays at 4pm agreed for the foreseeable.
Building locally
Tips
- Running Firedrake tests with different subpackage branches
- Modifying and Rebuilding PETSc and petsc4py
- Vectorisation
- Debugging C kernels with
lldb
on MacOS - Parallel MPI Debugging with
tmux-mpi
,pdb
andgdb
- Parallel MPI Debugging with VSCode and
debugpy
- Modifying generated code
- Kernel profiling with LIKWID
- breakpoint() builtin not working
- Debugging pytest with multiple processing
Developers Notes
- Upcoming meeting 2024-08-21
- 2024-08-07
- 2024-07-24
- 2024-07-17
- 2024-07-10
- 2024-06-26
- 2024-06-19
- 2024-06-05
- 2024-05-29
- 2024-05-15
- 2024-05-08
- 2024-05-01
- 2024-04-28
- 2024-04-17
- 2024-04-10
- 2024-04-03
- 2024-03-27
- 2024-03-20
- 2024-03-06
- 2024-02-28
- 2024-02-28
- 2024-02-21
- 2024-02-14
- 2024-02-07
- 2024-01-31
- 2024-01-24
- 2024-01-17
- 2024-01-10
- 2023-12-13
- 2023-12-06
- 2023-11-29
- 2023-11-22
- 2023-11-15
- 2023-11-08
- 2023-11-01
- 2023-10-25
- 2023-10-18
- 2023-10-11
- 2023-10-04
- 2023-09-27
- 2023-09-20
- 2023-09-06
- 2023-08-30
- 2023-08-23
- 2023-07-12
- 2023-07-05
- 2023-06-21
- 2023-06-14
- 2023-06-07
- 2023-05-17
- 2023-05-10
- 2023-03-08
- 2023-02-22
- 2023-02-15
- 2023-02-08
- 2023-01-18
- 2023-01-11
- 2023-12-14
- 2022-12-07
- 2022-11-23
- 2022-11-16
- 2022-11-09
- 2022-11-02
- 2022-10-26
- 2022-10-12
- 2022-10-05
- 2022-09-28
- 2022-09-21
- 2022-09-14
- 2022-09-07
- 2022-08-25
- 2022-08-11
- 2022-08-04
- 2022-07-28
- 2022-07-21
- 2022-07-07
- 2022-06-30
- 2022-06-23
- 2022-06-16
- 2022-05-26
- 2022-05-19
- 2022-05-12
- 2022-05-05
- 2022-04-21
- 2022-04-07
- 2022-03-17
- 2022-03-03
- 2022-02-24
- 2022-02-10
- 2022-02-03
- 2022-01-27
- 2022-01-20
- 2022-01-13
- 2021-12-15
- 2021-12-09
- 2021-11-25
- 2021-11-18
- 2021-11-11
- 2021-11-04
- 2021-10-28
- 2021-10-21
- 2021-10-14
- 2021-10-07
- 2021-09-30
- 2021-09-23
- 2021-09-09
- 2021-09-02
- 2021-08-26
- 2021-08-18
- 2021-08-11
- 2021-08-04
- 2021-07-28
- 2021-07-21
- 2021-07-14
- 2021-07-07
- 2021-06-30
- 2021-06-23
- 2021-06-16
- 2021-06-09
- 2021-06-02
- 2021-05-19
- 2021-05-12
- 2021-05-05
- 2021-04-28
- 2021-04-21
- 2021-04-14
- 2021-04-07
- 2021-03-17
- 2021-03-10
- 2021-02-24
- 2021-02-17
- 2021-02-10
- 2021-02-03
- 2021-01-27
- 2021-01-20
- 2021-01-13
- 2021-01-06