Skip to main content

Numerical continuation of nonlinear equilibrium equations

Project description

contique

Numeric continuation of nonlinear equilibrium equations

PyPI version shields.io PyPI pyversions Code coverage Made with love in Graz Code style: black

Fig. 1 Archimedean spiral equation solved with contique

Example

A given set of equilibrium equations in terms of x and lpf (a.k.a. load-proportionality-factor) should be solved by numeric continuation of a given initial solution.

Function definition

def fun(x, lpf, a, b):
    return np.array([-a * np.sin(x[0]) + x[1]**2 + lpf, 
                     -b * np.cos(x[1]) * x[1]    + lpf])

with its initial solution

x0 = np.zeros(2)
lpf0 = 0.0

and function parameters

a = 1
b = 1

Run contique.solve and plot equilibrium states

Res = contique.solve(
    fun=fun,
    x0=x0,
    args=(a, b),
    lpf0=lpf0,
    dxmax=0.1,
    dlpfmax=0.1,
    maxsteps=75,
    maxcycles=4,
    maxiter=20,
    tol=1e-6,
)

For each step a summary is printed out per cylce. This contains needed Newton-Rhapson iterations per cycle if the step was successful and an information about the control component at the beginning and the end of a cycle. As an example the ouput of Steps 71, 72 and 73 are shown below.

| Step (Cycle) | Control Comp. | Equili. | Status        |
|--------------|---------------|---------|---------------|
|   71     (1) |   -1  =>   -1 | 1.1e-13 | Success ( 4#) |
|   72     (1) |   -1  =>   +2 | 1.4e-09 | Recycle       |
|          (2) |   +2  =>   +2 | 6.1e-11 | Success ( 3#) |
|   73     (1) |   +2  =>   +2 | 1.1e-10 | Success ( 3#) |

Next, we have to assemble the results

X = np.array([res.x for res in Res])

and plot the solution curve.

import matplotlib.pyplot as plt

plt.plot(X[:, 0], X[:, 1], "C0.-")
plt.xlabel('$x_1$')
plt.ylabel('$x_2$')
plt.plot([0],[0],'C0o',lw=3)
plt.arrow(X[-2,0],X[-2,1],X[-1,0]-X[-2,0],X[-1,1]-X[-2,1],
          head_width=0.075, head_length=0.15, fc='C0', ec='C0')
plt.gca().set_aspect('equal')

Fig. 2 Solution states of equilibrium equations solved with contique

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contique-0.1.6.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

contique-0.1.6-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file contique-0.1.6.tar.gz.

File metadata

  • Download URL: contique-0.1.6.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2

File hashes

Hashes for contique-0.1.6.tar.gz
Algorithm Hash digest
SHA256 731fb406a083dea269ee7d9bf0f6c727c8df4db4081c943764215708ff40e5b9
MD5 e089efcde02e86209343fcfab2e99539
BLAKE2b-256 83d1814e0efeb05ae52ced47c21ef130bb5f425cd1f5c308e9a665111a612b67

See more details on using hashes here.

File details

Details for the file contique-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: contique-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 20.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2

File hashes

Hashes for contique-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 dfbd031a250a52b70b66f593b56dfa8681ea2f70fd2ce08c9b53506a09e05d2c
MD5 b1b34981d3a7ed9d50c7bcbc33e60847
BLAKE2b-256 b8027d1e339730e81764a5c40657d57c86114a3bb520f135e283726913c607bc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page