solve-nivp 0.2.0.dev1__tar.gz → 0.2.0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- solve_nivp-0.2.0.dev3/MANIFEST.in +10 -0
- {solve_nivp-0.2.0.dev1/solve_nivp.egg-info → solve_nivp-0.2.0.dev3}/PKG-INFO +2 -3
- solve_nivp-0.2.0.dev3/docs/Makefile +20 -0
- solve_nivp-0.2.0.dev3/docs/make.bat +35 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.ODESolver.rst +23 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.ODESystem.rst +25 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.adaptive_integrator.rst +12 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.alart_curnier_contact.rst +12 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.block_system.rst +7 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.contact.rst +17 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.desaxce_contact.rst +13 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.integrations.rst +22 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.macklin_contact.rst +17 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.moreau_jean_fremond.rst +17 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.ncp_contact.rst +19 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.nonlinear_solvers.rst +8 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.pcr.rst +6 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.projected_radau_contact.rst +21 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.projections.rst +21 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.rattle_contact.rst +25 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.rl.callbacks.rst +7 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.rl.dependency.rst +12 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.rl.env.rst +7 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.rl.rst +16 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.rst +38 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.soccp_pgs.rst +19 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.solvers.block_system.rst +11 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.solvers.nonlinear_solvers.rst +10 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.solvers.pcr.rst +10 -0
- solve_nivp-0.2.0.dev3/docs/source/api/solve_nivp.solvers.rst +13 -0
- solve_nivp-0.2.0.dev3/docs/source/conf.py +70 -0
- solve_nivp-0.2.0.dev3/docs/source/development.rst +30 -0
- solve_nivp-0.2.0.dev3/docs/source/examples.rst +62 -0
- solve_nivp-0.2.0.dev3/docs/source/index.rst +20 -0
- solve_nivp-0.2.0.dev3/docs/source/public_api.rst +93 -0
- solve_nivp-0.2.0.dev3/docs/source/quickstart.rst +42 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/pyproject.toml +9 -4
- solve_nivp-0.2.0.dev3/pytest.ini +10 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/ODESolver.py +28 -23
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/ODESystem.py +1 -1
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/__init__.py +34 -7
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/adaptive_integrator.py +228 -37
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/alart_curnier_contact.py +6 -5
- solve_nivp-0.2.0.dev3/src/solve_nivp/block_system.py +9 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/desaxce_contact.py +2 -2
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/integrations.py +15 -17
- solve_nivp-0.2.0.dev3/src/solve_nivp/mjf_integration.py +189 -0
- solve_nivp-0.2.0.dev3/src/solve_nivp/moreau_jean_fremond.py +2131 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/ncp_contact.py +100 -0
- solve_nivp-0.2.0.dev3/src/solve_nivp/nonlinear_solvers.py +9 -0
- solve_nivp-0.2.0.dev3/src/solve_nivp/pcr.py +9 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/projected_radau_contact.py +816 -96
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/projections.py +15 -10
- solve_nivp-0.2.0.dev3/src/solve_nivp/soccp_pgs.py +438 -0
- solve_nivp-0.2.0.dev3/src/solve_nivp/solvers/__init__.py +14 -0
- {solve_nivp-0.2.0.dev1/solve_nivp → solve_nivp-0.2.0.dev3/src/solve_nivp/solvers}/nonlinear_solvers.py +316 -49
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src/solve_nivp.egg-info}/PKG-INFO +2 -3
- solve_nivp-0.2.0.dev3/src/solve_nivp.egg-info/SOURCES.txt +121 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp.egg-info/top_level.txt +0 -1
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_auto_h0_and_dae_weighting.py +56 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_import_and_api.py +23 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_large_scale_solver_fixes.py +144 -2
- solve_nivp-0.2.0.dev3/tests/test_moreau_jean_fremond.py +797 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_ncp_contact.py +120 -1
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_per_dof_tolerances.py +29 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_prestressed_fault_dynamic_helper.py +15 -11
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_projected_radau_contact.py +260 -1
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_rattle_local_slider.py +18 -12
- solve_nivp-0.2.0.dev3/tests/test_soccp_pgs.py +174 -0
- solve_nivp-0.2.0.dev1/setup.py +0 -57
- solve_nivp-0.2.0.dev1/solve_nivp.egg-info/SOURCES.txt +0 -77
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/LICENSE +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/README.md +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/setup.cfg +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/_numba_accel.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/_selftest.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/macklin_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/rattle_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/rl/__init__.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/rl/callbacks.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/rl/dependency.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp/rl/env.py +0 -0
- {solve_nivp-0.2.0.dev1/solve_nivp → solve_nivp-0.2.0.dev3/src/solve_nivp/solvers}/block_system.py +0 -0
- {solve_nivp-0.2.0.dev1/solve_nivp → solve_nivp-0.2.0.dev3/src/solve_nivp/solvers}/pcr.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp.egg-info/dependency_links.txt +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp.egg-info/entry_points.txt +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3/src}/solve_nivp.egg-info/requires.txt +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/__init__.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_3d_and_anisotropic_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_active_set_filter.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_alart_curnier_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_algebraic_constraint_projection.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_anisotropic_soc_projection.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_block_system.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_bouncing_ball_schur_comparison.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_build_impulse_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_c_extract_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_composite_contact_projection.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_coulomb_projection.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_coulomb_projection_jacobian.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_desaxce_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_dilatancy.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_error_predictive_rejection.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_general_moreau_projection.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_globalization.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_identity_newton_linear_solver.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_integrators_added.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_jacobian_scaling.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_macklin_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_mu_scaled_soc_projection.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_ncp_schur_integration.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_nl_recovery_cap.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_nonlinear_solvers_added.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_pcr.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_prestress_soc.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_projection_batch_equivalence.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_projections_added.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_radau_iia.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_rattle_integrator.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_sdirk2.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_sdirk2_soc_contact.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_sparse_semismooth_newton.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_t_eval.py +0 -0
- {solve_nivp-0.2.0.dev1 → solve_nivp-0.2.0.dev3}/tests/test_threading_time_and_fk.py +0 -0
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: solve_nivp
|
|
3
|
-
Version: 0.2.0.
|
|
3
|
+
Version: 0.2.0.dev3
|
|
4
4
|
Summary: A Python toolkit for integrating nonsmooth dynamical systems
|
|
5
5
|
Author: David Riley, Ioannis Stefanou
|
|
6
|
-
License: MIT
|
|
6
|
+
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/ERC-INJECT/solve_nivp
|
|
8
8
|
Project-URL: Documentation, https://github.com/ERC-INJECT/solve_nivp/tree/main/docs
|
|
9
9
|
Project-URL: Issues, https://github.com/ERC-INJECT/solve_nivp/issues
|
|
10
10
|
Keywords: nonsmooth dynamics,ODE,DAE,variational inequalities,semismooth Newton,projection methods
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Intended Audience :: Science/Research
|
|
13
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
14
13
|
Classifier: Programming Language :: Python :: 3
|
|
15
14
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
16
15
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line, and also
|
|
5
|
+
# from the environment for the first two.
|
|
6
|
+
SPHINXOPTS ?=
|
|
7
|
+
SPHINXBUILD ?= sphinx-build
|
|
8
|
+
SOURCEDIR = source
|
|
9
|
+
BUILDDIR = build
|
|
10
|
+
|
|
11
|
+
# Put it first so that "make" without argument is like "make help".
|
|
12
|
+
help:
|
|
13
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
+
|
|
15
|
+
.PHONY: help Makefile
|
|
16
|
+
|
|
17
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
+
%: Makefile
|
|
20
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
@ECHO OFF
|
|
2
|
+
|
|
3
|
+
pushd %~dp0
|
|
4
|
+
|
|
5
|
+
REM Command file for Sphinx documentation
|
|
6
|
+
|
|
7
|
+
if "%SPHINXBUILD%" == "" (
|
|
8
|
+
set SPHINXBUILD=sphinx-build
|
|
9
|
+
)
|
|
10
|
+
set SOURCEDIR=source
|
|
11
|
+
set BUILDDIR=build
|
|
12
|
+
|
|
13
|
+
%SPHINXBUILD% >NUL 2>NUL
|
|
14
|
+
if errorlevel 9009 (
|
|
15
|
+
echo.
|
|
16
|
+
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
|
17
|
+
echo.installed, then set the SPHINXBUILD environment variable to point
|
|
18
|
+
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
|
19
|
+
echo.may add the Sphinx directory to PATH.
|
|
20
|
+
echo.
|
|
21
|
+
echo.If you don't have Sphinx installed, grab it from
|
|
22
|
+
echo.https://www.sphinx-doc.org/
|
|
23
|
+
exit /b 1
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
if "%1" == "" goto help
|
|
27
|
+
|
|
28
|
+
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
|
29
|
+
goto end
|
|
30
|
+
|
|
31
|
+
:help
|
|
32
|
+
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
|
33
|
+
|
|
34
|
+
:end
|
|
35
|
+
popd
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
solve\_nivp.ODESolver
|
|
2
|
+
=====================
|
|
3
|
+
|
|
4
|
+
.. currentmodule:: solve_nivp
|
|
5
|
+
|
|
6
|
+
.. autoclass:: ODESolver
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
.. automethod:: __init__
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
.. rubric:: Methods
|
|
13
|
+
|
|
14
|
+
.. autosummary::
|
|
15
|
+
|
|
16
|
+
~ODESolver.__init__
|
|
17
|
+
~ODESolver.solve
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
solve\_nivp.ODESystem
|
|
2
|
+
=====================
|
|
3
|
+
|
|
4
|
+
.. currentmodule:: solve_nivp
|
|
5
|
+
|
|
6
|
+
.. autoclass:: ODESystem
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
.. automethod:: __init__
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
.. rubric:: Methods
|
|
13
|
+
|
|
14
|
+
.. autosummary::
|
|
15
|
+
|
|
16
|
+
~ODESystem.__init__
|
|
17
|
+
~ODESystem.step
|
|
18
|
+
~ODESystem.step_adaptive
|
|
19
|
+
~ODESystem.step_fixed
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
solve\_nivp.desaxce\_contact
|
|
2
|
+
============================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.desaxce_contact
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Functions
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
build_dynamic_desaxce_contact
|
|
12
|
+
build_dynamic_desaxce_projected_contact
|
|
13
|
+
build_dynamic_desaxce_residual_contact
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
solve\_nivp.integrations
|
|
2
|
+
========================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.integrations
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Classes
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
AlgebraicBackwardEuler
|
|
12
|
+
BackwardEuler
|
|
13
|
+
BackwardEulerSchur
|
|
14
|
+
CompositeMethod
|
|
15
|
+
EmbeddedBETR
|
|
16
|
+
IntegrationMethod
|
|
17
|
+
RadauIIA
|
|
18
|
+
RadauIIASchur
|
|
19
|
+
SDIRK2
|
|
20
|
+
ThetaMethod
|
|
21
|
+
Trapezoidal
|
|
22
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
solve\_nivp.macklin\_contact
|
|
2
|
+
============================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.macklin_contact
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Functions
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
build_macklin_contact_blocked
|
|
12
|
+
|
|
13
|
+
.. rubric:: Classes
|
|
14
|
+
|
|
15
|
+
.. autosummary::
|
|
16
|
+
|
|
17
|
+
MacklinBlockSystem
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
solve\_nivp.moreau\_jean\_fremond
|
|
2
|
+
=================================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.moreau_jean_fremond
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Functions
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
build_moreau_jean_fremond
|
|
12
|
+
|
|
13
|
+
.. rubric:: Classes
|
|
14
|
+
|
|
15
|
+
.. autosummary::
|
|
16
|
+
|
|
17
|
+
MoreauJeanFremondStepper
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
solve\_nivp.ncp\_contact
|
|
2
|
+
========================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.ncp_contact
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Functions
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
build_dynamic_ncp_contact
|
|
12
|
+
build_ncp_contact
|
|
13
|
+
build_ncp_contact_blocked
|
|
14
|
+
|
|
15
|
+
.. rubric:: Classes
|
|
16
|
+
|
|
17
|
+
.. autosummary::
|
|
18
|
+
|
|
19
|
+
NCPBlockSystem
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
solve\_nivp.projected\_radau\_contact
|
|
2
|
+
=====================================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.projected_radau_contact
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Functions
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
build_projected_radau_contact
|
|
12
|
+
|
|
13
|
+
.. rubric:: Classes
|
|
14
|
+
|
|
15
|
+
.. autosummary::
|
|
16
|
+
|
|
17
|
+
DeSaxceProjectedConeLaw
|
|
18
|
+
NCPNormalConeLaw
|
|
19
|
+
ProjectedRadauContactLaw
|
|
20
|
+
ProjectedRadauContactModel
|
|
21
|
+
SOCFischerBurmeisterLaw
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
solve\_nivp.projections
|
|
2
|
+
=======================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.projections
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Classes
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
AlgebraicConstraintProjection
|
|
12
|
+
AnisotropicSOCProjection
|
|
13
|
+
CompositeContactProjection
|
|
14
|
+
CoulombProjection
|
|
15
|
+
GeneralMoreauVIProjection
|
|
16
|
+
IdentityProjection
|
|
17
|
+
MoreauSOCProjection
|
|
18
|
+
MuScaledSOCProjection
|
|
19
|
+
Projection
|
|
20
|
+
SignProjection
|
|
21
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
solve\_nivp.rattle\_contact
|
|
2
|
+
===========================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.rattle_contact
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Functions
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
build_dynamic_rattle_contact
|
|
12
|
+
build_rattle_system
|
|
13
|
+
solve_dynamic_rattle_contact
|
|
14
|
+
|
|
15
|
+
.. rubric:: Classes
|
|
16
|
+
|
|
17
|
+
.. autosummary::
|
|
18
|
+
|
|
19
|
+
RattleAlgebraicSpec
|
|
20
|
+
RattleBilateralSpec
|
|
21
|
+
RattleContactSpec
|
|
22
|
+
RattleContactSystem
|
|
23
|
+
RattleMechanicalSystem
|
|
24
|
+
RattleSolveResult
|
|
25
|
+
RattleSolver
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
solve\_nivp.rl
|
|
2
|
+
==============
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.rl
|
|
5
|
+
|
|
6
|
+
The environment and callback modules require optional reinforcement-learning
|
|
7
|
+
dependencies. Install ``solve_nivp[rl]`` to use them at runtime.
|
|
8
|
+
|
|
9
|
+
.. rubric:: Modules
|
|
10
|
+
|
|
11
|
+
.. toctree::
|
|
12
|
+
:maxdepth: 1
|
|
13
|
+
|
|
14
|
+
solve_nivp.rl.callbacks
|
|
15
|
+
solve_nivp.rl.dependency
|
|
16
|
+
solve_nivp.rl.env
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
solve\_nivp API
|
|
2
|
+
===============
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp
|
|
5
|
+
:no-members:
|
|
6
|
+
|
|
7
|
+
Top-Level Functions
|
|
8
|
+
-------------------
|
|
9
|
+
|
|
10
|
+
.. autofunction:: solve_nivp.solve_nivp
|
|
11
|
+
|
|
12
|
+
``solve_ivp_ns`` is kept as a compatibility alias for ``solve_nivp``.
|
|
13
|
+
|
|
14
|
+
Modules
|
|
15
|
+
-------
|
|
16
|
+
|
|
17
|
+
.. toctree::
|
|
18
|
+
:maxdepth: 1
|
|
19
|
+
|
|
20
|
+
solve_nivp.ODESolver
|
|
21
|
+
solve_nivp.ODESystem
|
|
22
|
+
solve_nivp.adaptive_integrator
|
|
23
|
+
solve_nivp.alart_curnier_contact
|
|
24
|
+
solve_nivp.block_system
|
|
25
|
+
solve_nivp.contact
|
|
26
|
+
solve_nivp.desaxce_contact
|
|
27
|
+
solve_nivp.integrations
|
|
28
|
+
solve_nivp.macklin_contact
|
|
29
|
+
solve_nivp.moreau_jean_fremond
|
|
30
|
+
solve_nivp.ncp_contact
|
|
31
|
+
solve_nivp.nonlinear_solvers
|
|
32
|
+
solve_nivp.pcr
|
|
33
|
+
solve_nivp.projected_radau_contact
|
|
34
|
+
solve_nivp.projections
|
|
35
|
+
solve_nivp.rattle_contact
|
|
36
|
+
solve_nivp.rl
|
|
37
|
+
solve_nivp.solvers
|
|
38
|
+
solve_nivp.soccp_pgs
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
solve\_nivp.soccp\_pgs
|
|
2
|
+
======================
|
|
3
|
+
|
|
4
|
+
.. automodule:: solve_nivp.soccp_pgs
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.. rubric:: Functions
|
|
8
|
+
|
|
9
|
+
.. autosummary::
|
|
10
|
+
|
|
11
|
+
desaxce_shift_factory
|
|
12
|
+
fremond_shift_factory
|
|
13
|
+
soccp_pgs
|
|
14
|
+
|
|
15
|
+
.. rubric:: Classes
|
|
16
|
+
|
|
17
|
+
.. autosummary::
|
|
18
|
+
|
|
19
|
+
SocppPgsInfo
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
#
|
|
3
|
+
# For the full list of built-in configuration values, see the documentation:
|
|
4
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
5
|
+
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
import sys
|
|
8
|
+
|
|
9
|
+
sys.path.insert(0, str(Path(__file__).resolve().parents[2] / 'src'))
|
|
10
|
+
|
|
11
|
+
# -- Project information -----------------------------------------------------
|
|
12
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
13
|
+
|
|
14
|
+
project = 'solve_nivp'
|
|
15
|
+
copyright = '2025, David Riley'
|
|
16
|
+
author = 'David Riley'
|
|
17
|
+
release = '0.2.0.dev1'
|
|
18
|
+
|
|
19
|
+
# -- General configuration ---------------------------------------------------
|
|
20
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
21
|
+
|
|
22
|
+
extensions = [
|
|
23
|
+
'sphinx.ext.autodoc',
|
|
24
|
+
'sphinx.ext.autosummary',
|
|
25
|
+
'sphinx.ext.napoleon', # NumPy/Google-style docstrings
|
|
26
|
+
'sphinx.ext.viewcode',
|
|
27
|
+
'sphinx.ext.mathjax',
|
|
28
|
+
'sphinx.ext.intersphinx',
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
# API stubs are committed under docs/source/api. Regenerate them explicitly
|
|
32
|
+
# when the public module list changes so normal docs builds do not dirty Git.
|
|
33
|
+
autosummary_generate = False
|
|
34
|
+
|
|
35
|
+
# Type hints in description for cleaner signatures
|
|
36
|
+
autodoc_typehints = 'description'
|
|
37
|
+
|
|
38
|
+
# Optional extras are documented without requiring their runtime dependencies.
|
|
39
|
+
autodoc_mock_imports = [
|
|
40
|
+
'gymnasium',
|
|
41
|
+
'stable_baselines3',
|
|
42
|
+
'sb3_contrib',
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
# Napoleon options
|
|
46
|
+
napoleon_google_docstring = False
|
|
47
|
+
napoleon_numpy_docstring = True
|
|
48
|
+
|
|
49
|
+
# Intersphinx mappings for cross-references
|
|
50
|
+
intersphinx_mapping = {
|
|
51
|
+
'python': ('https://docs.python.org/3', None),
|
|
52
|
+
'numpy': ('https://numpy.org/doc/stable/', None),
|
|
53
|
+
'scipy': ('https://docs.scipy.org/doc/scipy/', None),
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
templates_path = ['_templates']
|
|
57
|
+
exclude_patterns = []
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# -- Options for HTML output -------------------------------------------------
|
|
62
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
63
|
+
|
|
64
|
+
html_theme = 'alabaster'
|
|
65
|
+
html_static_path = []
|
|
66
|
+
|
|
67
|
+
latex_engine = 'xelatex'
|
|
68
|
+
# latex_elements = {
|
|
69
|
+
# 'preamble': r'\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}',
|
|
70
|
+
# }
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Development
|
|
2
|
+
===========
|
|
3
|
+
|
|
4
|
+
Testing
|
|
5
|
+
-------
|
|
6
|
+
Run the unit tests from the project root in a fresh virtual environment:
|
|
7
|
+
|
|
8
|
+
.. code-block:: bash
|
|
9
|
+
|
|
10
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
11
|
+
pip install -U pip
|
|
12
|
+
pip install -e .[test]
|
|
13
|
+
pytest -q
|
|
14
|
+
|
|
15
|
+
Documentation
|
|
16
|
+
-------------
|
|
17
|
+
Build the docs locally:
|
|
18
|
+
|
|
19
|
+
.. code-block:: bash
|
|
20
|
+
|
|
21
|
+
cd docs
|
|
22
|
+
make clean html
|
|
23
|
+
|
|
24
|
+
Then open ``_build/html/index.html`` in your browser.
|
|
25
|
+
|
|
26
|
+
Style and contributions
|
|
27
|
+
-----------------------
|
|
28
|
+
- Use NumPy-style docstrings (processed by ``napoleon``).
|
|
29
|
+
- Keep public APIs documented and covered by tests.
|
|
30
|
+
- Submit PRs with focused changes and include updates to docs/examples.
|