diff --git a/pytestpavement/__init__.py b/pytestpavement/__init__.py index 97418af..4f1f80c 100644 --- a/pytestpavement/__init__.py +++ b/pytestpavement/__init__.py @@ -1,6 +1,7 @@ # main __init__.py from .analysis import * +from .functions import * from .helper import * from .io import * from .labtests import * diff --git a/pytestpavement/functions/__init__.py b/pytestpavement/functions/__init__.py new file mode 100644 index 0000000..dc625af --- /dev/null +++ b/pytestpavement/functions/__init__.py @@ -0,0 +1 @@ +from .citt import * diff --git a/pytestpavement/functions/citt.py b/pytestpavement/functions/citt.py new file mode 100644 index 0000000..af8f6da --- /dev/null +++ b/pytestpavement/functions/citt.py @@ -0,0 +1,10 @@ +import numpy as np + + +def stiffness_tp26(T, f, Emax, Emin, phi, z0, z1, T0=20.0): + + alphaT = np.exp(phi * ((1 / (T + 273.15)) - (1 / (T0 + 273.15)))) + x = np.log(f * alphaT) / np.log(10) + E = Emin + (Emax - Emin) / (1 + np.exp(z0 * x + z1)) + + return E diff --git a/pytestpavement/labtests/base.py b/pytestpavement/labtests/base.py index 9d94f30..9c7fc29 100644 --- a/pytestpavement/labtests/base.py +++ b/pytestpavement/labtests/base.py @@ -35,6 +35,8 @@ class DataSineLoad(): self._define_units() self._calc_hash() + + def fit(self): self._read_data() self._standardize_data() diff --git a/pytestpavement/labtests/dsv.py b/pytestpavement/labtests/dsv.py new file mode 100644 index 0000000..e69de29 diff --git a/pytestpavement/labtests/sheartest.py b/pytestpavement/labtests/sheartest.py index 3503476..13718fc 100644 --- a/pytestpavement/labtests/sheartest.py +++ b/pytestpavement/labtests/sheartest.py @@ -139,6 +139,15 @@ class ShearTestExtension(ShearTest): def runfit(self): self._fit_data() + def file_in_db(self): + + n = DynamicShearTestExtension.objects(filehash=self.filehash).count() + + if n > 0: + return True + else: + return False + def save(self, material1, material2, bounding, meta: dict): for i, fit in self.fit.iterrows(): @@ -178,6 +187,7 @@ class ShearTestExtension(ShearTest): values[f'fit_phase_{col}'] = fit[f'fit_phase_{col}'] values[f'fit_offset_{col}'] = fit[f'fit_offset_{col}'] values[f'fit_slope_{col}'] = fit[f'fit_slope_{col}'] + values[f'r2_{col}'] = fit[f'r2_{col}'] values.update(meta) @@ -574,6 +584,12 @@ class ShearTestExtensionTUDresdenGeosys(ShearTestExtension): ]: self.data[col] = self.data[col].mul(self.unit_S) + #convert internal units to global + f = np.mean([0.9 / 355, 0.6 / 234.0, 0.3 / 116.0]) + + self.data['sigma_normal'] = self.data['sigma_normal'].mul(f).apply( + lambda x: np.round(x, 1)) + return True def _read_data(self): diff --git a/pytestpavement/models/material.py b/pytestpavement/models/material.py index 8a2506e..d57b0cb 100644 --- a/pytestpavement/models/material.py +++ b/pytestpavement/models/material.py @@ -27,7 +27,7 @@ class Asphalt(Material): name = StringField() material = StringField() - young_modulus = FloatField() + young_modulus = DictField() class Bitumen(Material): @@ -35,14 +35,14 @@ class Bitumen(Material): name = StringField() material = StringField() - young_modulus = FloatField() + young_modulus = DictField() class Epoxy(Material): name = StringField() material = StringField() - young_modulus = FloatField() + young_modulus = DictField() class Dummy(Material): @@ -50,4 +50,4 @@ class Dummy(Material): name = StringField() material = StringField() - young_modulus = FloatField() + young_modulus = DictField() diff --git a/pytestpavement/models/sheartest.py b/pytestpavement/models/sheartest.py index eab5a5e..d17fc23 100644 --- a/pytestpavement/models/sheartest.py +++ b/pytestpavement/models/sheartest.py @@ -13,6 +13,8 @@ class DynamicShearTest(Document): "step": "60" }}) + tags = ListField(StringField()) + standard = StringField(default='TP Asphalt Teil 24') lab = StringField(default='TU Dresden', required=True) @@ -20,6 +22,7 @@ class DynamicShearTest(Document): machine = StringField(default=None) filehash = StringField(required=True) + speciment_name = StringField() project = StringField(required=True) workpackage = StringField() @@ -82,3 +85,8 @@ class DynamicShearTestExtension(DynamicShearTest): fit_offset_s_vert_sum = FloatField() fit_slope_s_vert_sum = FloatField() r2_s_vert_sum = FloatField() + ## r2 + r2_F = FloatField() + r2_s_vert_1 = FloatField() + r2_s_vert_2 = FloatField() + r2_s_vert_sum = FloatField()