Adaptive-grid phase diagram calculation and plotting routines
Project description
PhaseDiagram
Adaptive-grid phase diagram calculation and plotting routines
2D phase diagrams
A small piece of code for plotting integer-valued functions over strangely shaped regions.
The general idea:
- Define an initial series of points, and evaluate the phase function at those points.
- Compute the Delaunay triangulation of this grid.
- For every triangle with disagreeing edges, add an extra point in its centre.
- Repeat.
This is defined for both 2D phase digrams, and for 3D unit sphere projections where 3 competing parameters are show normalised, e.g. to an overall energy scale.
Example usage, with a directory structure as follows:
test/PhaseDiagram.py
test/test.py
import numpy as np
import matplotlib.pyplot as plt
from PhaseDiagram import PhasePlane
def phase(X, Y):
return np.where(X**2 + 4*Y**2 > 1, 1, 0) + np.where(X + Y > 0, 1, 0)
p = PhasePlane(phase, ['A','B','C'], ['x1','x2'])
p.set_initpts(np.linspace(-1.5,1.5,10),np.linspace(-1.5,1.5,10))
p.refine(6)
p.plot()
plt.show()
p.refine()
may be called any number of times. This is particularly useful in e.g. jupyter notebooks or ipython.
More examples are present in te examples
folder, which I will gradually add to.
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
Built Distribution
Hashes for PhaseDiagram-0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef784bdc6cde43d4a55d2787711be282a1decdbd9b055b1223463e16b25d032f |
|
MD5 | 234b883a44babb05aa16218cc82e62da |
|
BLAKE2b-256 | dc7f2e73230f24f6d2476a14816fc1386f363bc0adc1503937eb697a547ff50c |