Backported fixes from up to v10a3 #926
Merged
gertjanvanzwieten merged 13 commits intorelease/9from Jul 10, 2025
Merged
Conversation
In evaluable.compile, this patch replaces the single lock for all shared data by a fine grained set of individual locks to reduce waiting times at high processor counts.
This patch removes the lock around assignments, which are unnecessary by
definition, to remove some overhead associated with aqcuiring the lock. The
generated code changes as follows.
Before:
# LoopSum e0; alloc
with lock0:
v0 = parallel.shempty((), dtype=float)
After:
# LoopSum e0; alloc
v0 = parallel.shempty((), dtype=float)
Without the parentheses the tmp variable equals only the first element of bnd_structure, which works here only by happy accident.
This patch fixes the invalid escape code '\d' in _util.loadlib.
This energy functional was too large by a factor of 2. This is inconsequential for this script since the boundary conditions are entirely kinematic, but it may introduce errors in scripts with traction boundary conditions that use finitestrain as a starting point.
This patch restores the ability of solver.optimize to receive targets that do not occur in the goal functional if tol is nonzero. This behaviour was unintentionally lost with the introduction of System.
This patch adds support for constructing an empty array via matrix.assemble_block_csr, which would fail for trying to concatenate an empty list. This introduces a new requirement for the block arguments which must now all be numpy arrays: this is required to carry the dtype which is otherwise unknown in absense of values.
This patch adds support for the gradient of int and bool arrays, which now returns zero.
This patch adds the evaluable.Array.ast_dtype property, which serves two purposes: 1. removing the repeated _pyast.Variable(self.dtype.__name__) for every operation with a dtype argument, and 2. specifying the precise bit length for every data type. In particular this forces all integers to be 64 bit, which overrides Windows behaviour of defaulting to 32 bit integers.
This patch adds pickle support to solver.System objects.
This patch generalizes the first argument of export.vtk. Formerly this had to be a string, namely the filename to be logged via treelog.userfile. With this change it can also be a ready made file object.
This patch fixes default values of several rtol parameters in the solver methods, changing them from 1-3 to the intended 1e-3.
This patch fixes the Topology.project operation which continued to use the functions sum and norm2 from the function module after their removal. Fixes #923.
joostvanzwieten
approved these changes
Jul 10, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.