cardiac-geometriesx 0.4.0__py3-none-any.whl → 0.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cardiac-geometriesx might be problematic. Click here for more details.

@@ -159,7 +159,10 @@ def compute_system(
159
159
  s0 = utils.normalize(s0)
160
160
 
161
161
  Vv = space_from_string(
162
- space_string=f"{element.family_name}_{element.degree}", mesh=mesh, dim=mesh.geometry.dim
162
+ space_string=f"{element.family_name}_{element.degree}",
163
+ mesh=mesh,
164
+ dim=mesh.geometry.dim,
165
+ discontinuous=element.discontinuous,
163
166
  )
164
167
 
165
168
  fiber = dolfinx.fem.Function(Vv)
@@ -60,7 +60,10 @@ def compute_system(
60
60
  n0 = utils.normalize(n0)
61
61
 
62
62
  Vv = space_from_string(
63
- space_string=f"{element.family_name}_{element.degree}", mesh=mesh, dim=mesh.geometry.dim
63
+ space_string=f"{element.family_name}_{element.degree}",
64
+ mesh=mesh,
65
+ dim=mesh.geometry.dim,
66
+ discontinuous=element.discontinuous,
64
67
  )
65
68
 
66
69
  fiber = dolfinx.fem.Function(Vv)
@@ -20,13 +20,15 @@ class Microstructure(NamedTuple):
20
20
  def save_microstructure(
21
21
  mesh: dolfinx.mesh.Mesh, functions: Sequence[dolfinx.fem.Function], outdir: str | Path
22
22
  ) -> None:
23
- from ..utils import create_xdmf_pointcloud, element2array
23
+ from ..utils import element2array
24
24
 
25
25
  if len(functions) == 0:
26
26
  return
27
27
  # Save for paraview visualization
28
28
  if functions[0].function_space.ufl_element().family_name == "quadrature":
29
- create_xdmf_pointcloud(us=functions, filename=Path(outdir) / "microstructure-viz.xdmf")
29
+ from scifem.xdmf import create_pointcloud
30
+
31
+ create_pointcloud(functions=functions, filename=Path(outdir) / "microstructure-viz.xdmf")
30
32
  else:
31
33
  try:
32
34
  with dolfinx.io.VTXWriter(
@@ -270,7 +270,9 @@ def model_to_mesh(
270
270
  return GMshModel(mesh, ct, ft, et, vt)
271
271
 
272
272
 
273
- def parse_element(space_string: str, mesh: dolfinx.mesh.Mesh, dim: int) -> basix.ufl._ElementBase:
273
+ def parse_element(
274
+ space_string: str, mesh: dolfinx.mesh.Mesh, dim: int, discontinuous: bool = False
275
+ ) -> basix.ufl._ElementBase:
274
276
  """
275
277
  Parse a string representation of a basix element family
276
278
  """
@@ -283,8 +285,9 @@ def parse_element(space_string: str, mesh: dolfinx.mesh.Mesh, dim: int) -> basix
283
285
  else:
284
286
  kwargs["shape"] = (dim,)
285
287
 
288
+ # breakpoint()
286
289
  if family_str in ["Lagrange", "P", "CG"]:
287
- el = basix.ufl.element(family=basix.ElementFamily.P, discontinuous=False, **kwargs)
290
+ el = basix.ufl.element(family=basix.ElementFamily.P, discontinuous=discontinuous, **kwargs)
288
291
  elif family_str in ["Discontinuous Lagrange", "DG", "dP"]:
289
292
  el = basix.ufl.element(family=basix.ElementFamily.P, discontinuous=True, **kwargs)
290
293
 
@@ -298,7 +301,7 @@ def parse_element(space_string: str, mesh: dolfinx.mesh.Mesh, dim: int) -> basix
298
301
 
299
302
 
300
303
  def space_from_string(
301
- space_string: str, mesh: dolfinx.mesh.Mesh, dim: int
304
+ space_string: str, mesh: dolfinx.mesh.Mesh, dim: int, discontinuous: bool = False
302
305
  ) -> dolfinx.fem.functionspace:
303
306
  """
304
307
  Constructed a finite elements space from a string
@@ -313,8 +316,10 @@ def space_from_string(
313
316
  The mesh
314
317
  dim : int
315
318
  1 for scalar space, 3 for vector space.
319
+ discontinuous: bool
320
+ If true force element to be discontinuous, by default False
316
321
  """
317
- el = parse_element(space_string, mesh, dim)
322
+ el = parse_element(space_string, mesh, dim, discontinuous=discontinuous)
318
323
  return dolfinx.fem.functionspace(mesh, el)
319
324
 
320
325
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cardiac-geometriesx
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: A python library for cardiac geometries
5
5
  Author-email: Henrik Finsberg <henriknf@simula.no>
6
6
  License: MIT
@@ -17,6 +17,7 @@ Requires-Dist: structlog
17
17
  Requires-Dist: cardiac-geometries-core
18
18
  Requires-Dist: rich-click
19
19
  Requires-Dist: adios4dolfinx
20
+ Requires-Dist: scifem
20
21
  Provides-Extra: dev
21
22
  Requires-Dist: bump-my-version ; extra == 'dev'
22
23
  Requires-Dist: ipython ; extra == 'dev'
@@ -0,0 +1,16 @@
1
+ cardiac_geometries/__init__.py,sha256=2W_ywAeLjyRk5MqSPAodHa4UN2lOnW1h8tmGLQ3gaJ0,150
2
+ cardiac_geometries/cli.py,sha256=GKcsMNhVFoxWDr-o3jiDCXmTvPgCSEB9Kws8AvYIK4Q,19678
3
+ cardiac_geometries/geometry.py,sha256=s-1BIDKvP9M3uu3Sl8JpGRnTnXZAa9Aq3FfpIIEAxhY,5982
4
+ cardiac_geometries/gui.py,sha256=9WYR850wLrqsUrVUC37E2SaO0OWA_oagSe-YNrsxz3k,8376
5
+ cardiac_geometries/mesh.py,sha256=Ejciny48mnKKN20RrY9DwLY7_Lh1jb6Kldj4CW1wr1o,26909
6
+ cardiac_geometries/utils.py,sha256=8QKkdK3JFZMH3qF4PzvEVfk7vMB5Ciui-KFIct2Kd2g,20560
7
+ cardiac_geometries/fibers/__init__.py,sha256=WpRrn9Iakl-3m8IGtFkqP0LXGjw5EZHZ8Eg9JCnCdrg,137
8
+ cardiac_geometries/fibers/lv_ellipsoid.py,sha256=nJYkwvacH1xMhuWAV06NRR4fFzyprowfWv4UIQkCPQM,5830
9
+ cardiac_geometries/fibers/slab.py,sha256=TYQhckJ8mwXz_08Cx3QsPQMtemkaxZ955SnSMrDfBPE,3898
10
+ cardiac_geometries/fibers/utils.py,sha256=rOGWyJTRQ7M1W5_JBOIuVPw5LGBVB0u_LGxBicfc--w,3190
11
+ cardiac_geometriesx-0.4.1.dist-info/LICENSE,sha256=lo5K2rJPZOSv6luutGHbzzi3IpXNaB9E2UWq60qvNx0,1111
12
+ cardiac_geometriesx-0.4.1.dist-info/METADATA,sha256=zbG7thVfZ1t_0dusLr0y8-YhOfo4pUNBD9POw9Ge2Q0,4185
13
+ cardiac_geometriesx-0.4.1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
14
+ cardiac_geometriesx-0.4.1.dist-info/entry_points.txt,sha256=xOBnlc6W-H9oCDYLNz3kpki26OmpfYSoFSrmi_4V-Ec,52
15
+ cardiac_geometriesx-0.4.1.dist-info/top_level.txt,sha256=J0gQxkWR2my5Vf7Qt8buDY8ZOjYdVfIweVunCGXWKNE,19
16
+ cardiac_geometriesx-0.4.1.dist-info/RECORD,,
@@ -1,16 +0,0 @@
1
- cardiac_geometries/__init__.py,sha256=2W_ywAeLjyRk5MqSPAodHa4UN2lOnW1h8tmGLQ3gaJ0,150
2
- cardiac_geometries/cli.py,sha256=GKcsMNhVFoxWDr-o3jiDCXmTvPgCSEB9Kws8AvYIK4Q,19678
3
- cardiac_geometries/geometry.py,sha256=s-1BIDKvP9M3uu3Sl8JpGRnTnXZAa9Aq3FfpIIEAxhY,5982
4
- cardiac_geometries/gui.py,sha256=9WYR850wLrqsUrVUC37E2SaO0OWA_oagSe-YNrsxz3k,8376
5
- cardiac_geometries/mesh.py,sha256=Ejciny48mnKKN20RrY9DwLY7_Lh1jb6Kldj4CW1wr1o,26909
6
- cardiac_geometries/utils.py,sha256=fMHlVzwxnk1lJd8XQPy8dgFB9C9ecSnJB2NzMXJGAAQ,20348
7
- cardiac_geometries/fibers/__init__.py,sha256=WpRrn9Iakl-3m8IGtFkqP0LXGjw5EZHZ8Eg9JCnCdrg,137
8
- cardiac_geometries/fibers/lv_ellipsoid.py,sha256=KuWnx9yZ5KDyoeoYyDnXLZYb82DRiNveZyNIboD3uJ8,5768
9
- cardiac_geometries/fibers/slab.py,sha256=5tMvOSqXQ4_nbdUUtho_tQjDrmICxZfN7SXNq4FKdlY,3836
10
- cardiac_geometries/fibers/utils.py,sha256=x6MNtW6xN5NBGBD0Ubm4eqTDde0j_Vd-nh8agFT_AiU,3161
11
- cardiac_geometriesx-0.4.0.dist-info/LICENSE,sha256=lo5K2rJPZOSv6luutGHbzzi3IpXNaB9E2UWq60qvNx0,1111
12
- cardiac_geometriesx-0.4.0.dist-info/METADATA,sha256=rPU1WjGfdSGrlkgnkhIubCY3WzJ7nlMGsLfcuNdU2ME,4163
13
- cardiac_geometriesx-0.4.0.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
14
- cardiac_geometriesx-0.4.0.dist-info/entry_points.txt,sha256=xOBnlc6W-H9oCDYLNz3kpki26OmpfYSoFSrmi_4V-Ec,52
15
- cardiac_geometriesx-0.4.0.dist-info/top_level.txt,sha256=J0gQxkWR2my5Vf7Qt8buDY8ZOjYdVfIweVunCGXWKNE,19
16
- cardiac_geometriesx-0.4.0.dist-info/RECORD,,