Skip to content

Backported fixes from up to v10a3 #926

Merged
gertjanvanzwieten merged 13 commits intorelease/9from
backports
Jul 10, 2025
Merged

Backported fixes from up to v10a3 #926
gertjanvanzwieten merged 13 commits intorelease/9from
backports

Conversation

@gertjanvanzwieten
Copy link
Contributor

No description provided.

gertjanvanzwieten and others added 13 commits July 9, 2025 14:31
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.
@gertjanvanzwieten gertjanvanzwieten changed the title Backported fixes from up to 10a3 Backported fixes from up to v10a3 Jul 9, 2025
@gertjanvanzwieten gertjanvanzwieten merged commit d06c7c7 into release/9 Jul 10, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants