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 normalised, e.g. to an overall energy scale.
Baisc usage (phaseplane)
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
PhaseDiagram-0.3.3.tar.gz
(19.8 kB
view hashes)
Built Distribution
Close
Hashes for PhaseDiagram-0.3.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4447fae63c0917f4c263c5072ff80d2811277e40a48c079dcc28355bfe7f2870 |
|
MD5 | a0d420c1c1c119bda47ce1faefef6f10 |
|
BLAKE2b-256 | 88609fe477f2a8ecbbe19c8c9baeb65d4c15adcc23d380110ffa646eedb6563a |