mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-06-29 08:19:27 +02:00
Merge branch 'develop' into documentation
This commit is contained in:
commit
2409bfdcf5
5 changed files with 14 additions and 24 deletions
|
@ -2,10 +2,13 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## [2.x.x] - 2022-xx-xx
|
## [2.2.0] - 2022-xx-xx
|
||||||
### Added
|
### Added
|
||||||
|
- New submodule `input.pandas` added which adds the possibility to read and write pandas DataFrames containing `Obs` or `Corr` objects to csv files or SQLite databases.
|
||||||
|
- `hash` method for `Obs` objects added.
|
||||||
- `Obs.reweight` method added in analogy to `Corr.reweight` which allows for a more convenient reweighting of individual observables.
|
- `Obs.reweight` method added in analogy to `Corr.reweight` which allows for a more convenient reweighting of individual observables.
|
||||||
- `Corr.show` now has the additional argument `title` which allows to add a title to the figure. Figures are now saved with `bbox_inches='tight'`.
|
- `Corr.show` now has the additional argument `title` which allows to add a title to the figure. Figures are now saved with `bbox_inches='tight'`.
|
||||||
|
- Function for the extraction of the gradient flow coupling added (see 1607.06423 for details).
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- `Corr.m_eff` can now deal with correlator entries which are exactly zero.
|
- `Corr.m_eff` can now deal with correlator entries which are exactly zero.
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"Import pyerrors, as well as autograd wrapped numpy and matplotlib."
|
"Import numpy, matplotlib and pyerrors."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"`pyerrors` overloads all basic math operations, the user can work with these `Obs` as if they were real numbers. The proper resampling is performed in the background via automatic differentiation."
|
"`pyerrors` overloads all basic math operations, the user can work with these `Obs` as if they were real numbers. The proper error propagation is performed in the background via automatic differentiation."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -179,7 +179,7 @@
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"This figure shows the windowsize dependence of the integrated autocorrelation time. The red vertical line signalizes the window chosen by the automatic windowing procedure with $S=2.0$.\n",
|
"This figure shows the windowsize dependence of the integrated autocorrelation time. The vertical line signalizes the window chosen by the automatic windowing procedure with $S=2.0$.\n",
|
||||||
"Choosing a larger windowsize would not significantly alter $\\tau_\\text{int}$, so everything seems to be correct here."
|
"Choosing a larger windowsize would not significantly alter $\\tau_\\text{int}$, so everything seems to be correct here."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -283,7 +283,7 @@
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"We can now redo the error analysis and alter the value of S or attach a tail to the autocorrelation function to take into account long range autocorrelations"
|
"We can now redo the error analysis and alter the value of S or attach a tail to the autocorrelation function via the parameter `tau_exp` to take into account long range autocorrelations"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -242,7 +242,7 @@
|
||||||
"id": "4a9d13b2",
|
"id": "4a9d13b2",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"We can also use the priodicity of the lattice in order to obtain the cosh effective mass"
|
"We can also use the periodicity of the lattice in order to obtain the cosh effective mass"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -387,8 +387,7 @@
|
||||||
"source": [
|
"source": [
|
||||||
"## Missing Values \n",
|
"## Missing Values \n",
|
||||||
"\n",
|
"\n",
|
||||||
"Apart from the build-in functions, there is another reason, why one should use a **Corr** instead of a list of **Obs**. \n",
|
"Apart from the build-in functions, another benefit of using ``Corr`` objects is that they can handle missing values. \n",
|
||||||
"Missing values are handled for you. \n",
|
|
||||||
"We will create a second correlator with missing values. "
|
"We will create a second correlator with missing values. "
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -459,18 +458,6 @@
|
||||||
"The important thing is that, whatever you do, correlators keep their length **T**. So there will never be confusion about how you count timeslices. You can also take a plateau or perform a fit, even though some values might be missing."
|
"The important thing is that, whatever you do, correlators keep their length **T**. So there will never be confusion about how you count timeslices. You can also take a plateau or perform a fit, even though some values might be missing."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 18,
|
|
||||||
"id": "f3c4609c",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"assert first_derivative.T == my_correlator.T == len(first_derivative.content) == len(my_correlator.content)\n",
|
|
||||||
"assert first_derivative.content[0] is None\n",
|
|
||||||
"assert first_derivative.content[-1] is None"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "7fcbcac4",
|
"id": "7fcbcac4",
|
||||||
|
|
|
@ -163,7 +163,7 @@ def read_DistillationContraction_hd5(path, ens_id, diagrams=["direct"], idl=None
|
||||||
Nt = h5file["DistillationContraction/Metadata"].attrs.get("Nt")[0]
|
Nt = h5file["DistillationContraction/Metadata"].attrs.get("Nt")[0]
|
||||||
|
|
||||||
identifier = []
|
identifier = []
|
||||||
for in_file in range(4):
|
for in_file in range(len(h5file["DistillationContraction/Metadata/DmfInputFiles"].attrs.keys()) - 1):
|
||||||
encoded_info = h5file["DistillationContraction/Metadata/DmfInputFiles"].attrs.get("DmfInputFiles_" + str(in_file))
|
encoded_info = h5file["DistillationContraction/Metadata/DmfInputFiles"].attrs.get("DmfInputFiles_" + str(in_file))
|
||||||
full_info = encoded_info[0].decode().split("/")[-1].replace(".h5", "").split("_")
|
full_info = encoded_info[0].decode().split("/")[-1].replace(".h5", "").split("_")
|
||||||
my_tuple = (full_info[0], full_info[1][1:], full_info[2], full_info[3])
|
my_tuple = (full_info[0], full_info[1][1:], full_info[2], full_info[3])
|
||||||
|
@ -174,8 +174,8 @@ def read_DistillationContraction_hd5(path, ens_id, diagrams=["direct"], idl=None
|
||||||
for diagram in diagrams:
|
for diagram in diagrams:
|
||||||
real_data = np.zeros(Nt)
|
real_data = np.zeros(Nt)
|
||||||
for x0 in range(Nt):
|
for x0 in range(Nt):
|
||||||
raw_data = h5file["DistillationContraction/Correlators/" + diagram + "/" + str(x0)]
|
raw_data = h5file["DistillationContraction/Correlators/" + diagram + "/" + str(x0)][:]["re"].astype(np.double)
|
||||||
real_data += np.roll(raw_data[:]["re"].astype(np.double), -x0)
|
real_data += np.roll(raw_data, -x0)
|
||||||
real_data /= Nt
|
real_data /= Nt
|
||||||
|
|
||||||
corr_data[diagram].append(real_data)
|
corr_data[diagram].append(real_data)
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -25,7 +25,7 @@ setup(name='pyerrors',
|
||||||
license="MIT",
|
license="MIT",
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
python_requires='>=3.6.0',
|
python_requires='>=3.6.0',
|
||||||
install_requires=['numpy>=1.16', 'autograd>=1.4', 'numdifftools', 'matplotlib>=3.3', 'scipy>=1', 'iminuit>=2', 'h5py>=3', 'lxml>=4', 'python-rapidjson>=1', 'pandas>=1.1', 'pysqlite3>=0.4'],
|
install_requires=['numpy>=1.19', 'autograd>=1.4', 'numdifftools', 'matplotlib>=3.3', 'scipy>=1.5', 'iminuit>=2', 'h5py>=3', 'lxml>=4', 'python-rapidjson>=1', 'pandas>=1.1', 'pysqlite3>=0.4'],
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Development Status :: 5 - Production/Stable',
|
'Development Status :: 5 - Production/Stable',
|
||||||
'Intended Audience :: Science/Research',
|
'Intended Audience :: Science/Research',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue