Migrating from v2.0.0 to v2.1.0¶
Input file changes¶
New top-level sections¶
[Schedulers]is now a recognized top-level section.[EquationSystems]is now a recognized top-level section.
Migration to EquationSystems (NonlinearSystem)¶
The biggest implicit-model migration is that nonlinear systems are now
first-class objects under [EquationSystems].
In v2.0.0, ImplicitUpdate referenced a model directly:
[Models]
[model]
type = ImplicitUpdate
implicit_model = 'system'
solver = 'newton'
[]
[]
In v2.1.0, define the nonlinear system explicitly and reference it
from ImplicitUpdate:
[EquationSystems]
[eq_sys]
type = NonlinearSystem
model = 'system'
[]
[]
[Models]
[model]
type = ImplicitUpdate
equation_system = 'eq_sys'
solver = 'newton'
[]
[]
So the migration is:
implicit_model(onImplicitUpdate) → move that model reference into a dedicated[EquationSystems]block.ImplicitUpdatenow points toequation_system.
type = NonlinearSystem resolves to the model-backed nonlinear-system
implementation, which interprets:
input
stateas unknowns,output
residualas residual equations,(residual, state)derivatives as the Jacobian.
Nonlinear solvers now reference a linear solver¶
In v2.1.0, nonlinear solvers accept a linear_solver option that
selects the linear algebra backend for each Newton iteration.
When omitted, the solver defaults to DenseLU.
[Solvers]
[newton]
type = Newton
abs_tol = 1e-10
rel_tol = 1e-8
max_its = 50
linear_solver = 'lu' # optional; DenseLU is used when absent
[]
[lu]
type = DenseLU
[]
[]
This linear_solver link controls how each nonlinear iteration solves
the linearized system, which was previously internal to the nonlinear
solver implementation.
Settings defaults / keys changed¶
[Settings] changed substantially in v2.1.0:
buffer_name_separatordefault changed from"."to"_".parameter_name_separatordefault changed from"."to"_".New options:
require_double_precision,additional_libraries,disable_jit.Removed:
default_floating_point_type,default_integer_type,default_device,machine_precision,tolerance,tighter_tolerance,interop_threads,intraop_threads.
Binary utility changes¶
runner was replaced by dedicated tools.
v2.0.0 command |
v2.1.0 replacement |
|---|---|
|
|
New in v2.1.0: neml2-inspect input.i model for wiring inspection, and
neml2-syntax for catalog browsing.
Note: neml2-diagnose and neml2-time that shipped with v2.1.0 were
removed in the v3 rewrite. See Migrating from v2.x to v3.0 for the current tool set.
Build system and integration¶
CMake minimum changed to
3.26.cmake-variants.yamlworkflow was replaced byCMakePresets.json.CMake config-package integration:
find_package(neml2 CONFIG), link targetneml2::neml2.pkg-configintegration is supported (neml2.pc).Python build backend moved from setuptools+custom
setup.pytoscikit-build-core.
See Migrating from v2.x to v3.0 for subsequent build-system changes introduced in the v3 rewrite.