Skip to content

Changelog¤

All releases and changes for the tatva library, pulled directly from GitHub.

0.10.1 (2026-04-27)¤

Bug Fixes¤

  • compound: create basic sparsity pattern from compound classes (9d959d6)
  • compound: incomplete nodal fields takes the local node ids now (a939beb)
  • compound: stack fields with any dims if prefix is same & respect stack=False (cd64646)
  • element: add value based equality for elements (ab784c5)
  • element: corrects the gradient enteries (91aef4c)
  • element: use einsum to support scalar, vector, and tensor fields (19cf253)
  • lifter: add adapt_sparsity which combines augment & reduce (af6db56)

0.10.0 (2026-04-23)¤

Features¤

  • constraint: parallel periodic constraint (f29ac8b)
  • lifter: add reduce_adjoint to reduce a dual vector (deead9c)
  • mesh: add utility function to extract local mesh from global mesh (0673b38)
  • mpi: add a communication plan for partitioned meshes based on Compound layouts (4e98892)
  • mpi: add all reduce plan for parallelization (79fc638)
  • sparse: add sparsity pattern augmentation with lifter constraints (54daf22)

Bug Fixes¤

  • compound: add helper to return global dof indices for Compound fields (e4abd97)
  • compound: allow inheritance of Compound subclasses (1dc9e51)
  • compound: clarify stacking logic & introduce AUTO sizing (3a3168a)
  • compound: correct global indexing into stacked fields (8bae34d)
  • compound: prevent fields with reserved names, prevent stacking with stack=False (5e4947e)
  • compound: remove metaclass and move initialization to init_subclass (1dc9e51)
  • compound: type of fields with AUTO in shape are NODAL by default (356b4a0)
  • constraint: bug in sparsity pattern for periodic constraint (e1069f8)
  • mpi: add function to reduce a dof layout (for lifter) (32173d0)
  • mpi: exchange plan accepts sparsity pattern, allreduce also replace indptr, indices (3dcd509)
  • mpi: makes hessian sparsity as optional arg in allreduce (a1d4b6b)
  • test: update test (79fc638)

0.9.1 (2026-04-12)¤

Bug Fixes¤

  • sparse: add linearized jacfwd with primal output (af72244)

0.9.0 (2026-03-27)¤

Features¤

  • lifter: add lifted method/decorator to lift functions (2077ffb)
  • operator: add an L2 project method (98a16d6)

Bug Fixes¤

  • compound: add Field.size attribute (cf8505d)
  • lifter: make dof arrays dynamic Array (b2222bc)
  • mesh: add _replace helper to update dataclass (2c1d9b6)
  • mesh: add hmin and hmax methods (489b76a)
  • mesh: hmin/hmax is the cell diameter which is 2*circumradius (6167223)
  • mesh: hotfix find_containing_polygons that points exactly on boundary are valid (3f95f2f)
  • minor fixes from code review (97c6bd4)
  • operator: make interpolate jittable (d9fe62b)
  • operator: set batch_size if None given (e57b362)
  • operator: skip element bounds checks in traced context (1b7a0a7)
  • sparse: make default for color_batch_size None but assign 0 (071af07)
  • sparse: revert the default for colored_batch_size to max color (9ee95da)
  • sparse: set default color_batch_size=max_color (2683d89)

Performance Improvements¤

  • mesh: AABB search for interpolation in triangles (32ff68d)

0.8.1 (2026-03-23)¤

Bug Fixes¤

  • make ColoredMatrix compatible with JAX>0.9.0 (ac51668)

0.8.0 (2026-03-16)¤

Features¤

  • add quadratic Tri6 element (37cf37a)
  • compound: add .at(...).set(...) logic to set subspaces (84d0c8d)
  • compound: add ability to provide individual shaped fields in init (921f6c4)
  • utils: add a decorator for virtual residual functions (#32) (c2d6db3)

Bug Fixes¤

  • compound: fix compound stack_fields for scalar fields (92bf79f)
  • compound: include default factory when recreating stacked fields (9ef3972)
  • compound: manage field indices, and arr updates without materializing a dense integer array of all indices (17897a1)
  • compound: preserve shape of scalar fields (don't enforce rank 2) (92bf79f)
  • compound: remove compound metaclass getitem (e42ad40)
  • element: move quadrature to instance, add quadrature as constructor args (#27) (06c9c19)

0.7.1 (2026-02-24)¤

Bug Fixes¤

  • remove jax BCOO based code for master-slave sparsity (ac49fc5)

0.7.0 (2026-02-24)¤

Features¤

  • sparse: add a ColoredMatrix type for sparse differentiation (2ab3214)

Bug Fixes¤

  • adapt sparse benchmark with new api (93d1cf4)
  • sparse: switch to scipy csr matrix in all sparsity pattern creation (2ab3214)

Performance Improvements¤

  • sparse: precompute reconstruction of data from J_compressed (d2f6a37)

0.6.0 (2026-02-20)¤

Features¤

  • element: add quadratic Line3 and Quad8 elements (#18) (37bffdd)
  • lifter: renamed constraints; DirichletBC -> Fixed; PeriodicMap -> (f4b9a78)
  • lifter: reworked Lifter with support for changing values (RuntimeValue) (f4b9a78)

Bug Fixes¤

  • compound: refactor stack_fields into a class decorator (305b87f)
  • element: allow interpolate func to accept nodal_coords (#16) (2042d98)
  • lifter: clarify constraint contract and make constraints hashable for jax.jit static args (ad08049)
  • lifter: support lifters as dynamic and static arguments to jitted (f4b9a78)
  • sparse: pass args and kwargs directly to colored jacobian to prevent recompilation and slowness (2d497df)
  • sparse: single jacfwd function with color batching by default (4f96770)

What's Changed¤

New Contributors¤

Full Changelog: https://github.com/smec-ethz/tatva/compare/v0.5.1...v0.6.0

0.5.1 (2026-02-15)¤

Bug Fixes¤

  • compound: respect default_factory for initialization of compound instances (#9) (7449120)
  • element: corrected Hex8 implementation, test for elements added (70755e6)

0.5.0 (2026-02-10)¤

Features¤

  • sparse: add coloring code (source mpundir) (0623e2c)
  • sparse: add method to generate sparsity pattern with full master-slave dof map (from zrlf) (5d37d56)

Bug Fixes¤

  • operator: removes check on quad points dimnension to be equal to coords dimension, necessary for 2D elements in 3D space (3827149)
  • operator: replaces jax.vmap with batched jax.lax.map for memory efficiency and scalin (fbab11a)
  • sparse: enables sparse jacfwd with args without performance issue (9ba9530)
  • sparse: process color based jacobian in batches, replaces jax.linearize with jax.jvp (6b361d7)
  • sparse: wraps jacfwd func to accept single parameter (9fe01e3)

0.4.0 (2026-01-27)¤

Features¤

  • add solver_utils a Lifter class making bcs easier (29de30b)
  • lifter: include periodic boundary conditions in the lifter (2e7ee32)

Bug Fixes¤

  • lifter: implement improvements based on review (250a4e0)
  • lifter: make constructor arguments 1 and 2 positional only (5230c75)

Documentation¤

  • lifter: extend docs for lifter module (77de185)