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.