Пример #1
0
def get_random_data(nx, ny):
    from pymks.datasets import make_elastic_FE_strain_random
    np.random.seed(8)
    return make_elastic_FE_strain_random(elastic_modulus=(1., 1.1),
                                         poissons_ratio=(0.3, 0.3),
                                         n_samples=1,
                                         size=(nx, ny))
Пример #2
0
def test_multiphase_FE_strain():
    from pymks import MKSRegressionModel
    from pymks.datasets import make_elastic_FE_strain_delta
    from pymks.datasets import make_elastic_FE_strain_random
    from pymks.bases import DiscreteIndicatorBasis

    L = 21
    i = 3
    elastic_modulus = (80, 100, 120)
    poissons_ratio = (0.3, 0.3, 0.3)
    macro_strain = 0.02
    size = (L, L)

    X_delta, strains_delta = \
        make_elastic_FE_strain_delta(elastic_modulus=elastic_modulus,
                                     poissons_ratio=poissons_ratio,
                                     size=size, macro_strain=macro_strain)
    basis = DiscreteIndicatorBasis(len(elastic_modulus))
    MKSmodel = MKSRegressionModel(basis)
    MKSmodel.fit(X_delta, strains_delta)
    np.random.seed(99)
    X, strain = make_elastic_FE_strain_random(n_samples=1,
                                              elastic_modulus=elastic_modulus,
                                              poissons_ratio=poissons_ratio,
                                              size=size,
                                              macro_strain=macro_strain)
    strain_pred = MKSmodel.predict(X)

    assert np.allclose(strain_pred[0, i:-i],
                       strain[0, i:-i],
                       rtol=1e-2,
                       atol=6.1e-3)
Пример #3
0
def get_random_data(nx, ny):
    from pymks.datasets import make_elastic_FE_strain_random
    np.random.seed(8)
    return make_elastic_FE_strain_random(elastic_modulus=(1., 1.1),
                                         poissons_ratio=(0.3, 0.3),
                                         n_samples=1,
                                         size=(nx, ny))
Пример #4
0
def test_multiphase_FE_strain():
    from pymks import MKSRegressionModel
    from pymks.datasets import make_elastic_FE_strain_delta
    from pymks.datasets import make_elastic_FE_strain_random
    from pymks.bases import DiscreteIndicatorBasis

    L = 21
    i = 3
    elastic_modulus = (80, 100, 120)
    poissons_ratio = (0.3, 0.3, 0.3)
    macro_strain = 0.02
    size = (L, L)

    X_delta, strains_delta = \
        make_elastic_FE_strain_delta(elastic_modulus=elastic_modulus,
                                     poissons_ratio=poissons_ratio,
                                     size=size, macro_strain=macro_strain)
    basis = DiscreteIndicatorBasis(len(elastic_modulus))
    MKSmodel = MKSRegressionModel(basis)
    MKSmodel.fit(X_delta, strains_delta)
    np.random.seed(99)
    X, strain = make_elastic_FE_strain_random(n_samples=1,
                                              elastic_modulus=elastic_modulus,
                                              poissons_ratio=poissons_ratio,
                                              size=size,
                                              macro_strain=macro_strain)
    strain_pred = MKSmodel.predict(X)

    assert np.allclose(strain_pred[0, i:-i], strain[0, i:-i],
                       rtol=1e-2, atol=6.1e-3)
Пример #5
0
def test_make_elastic_FE_strain_random():
    elastic_modulus = (1., 2.)
    poissons_ratio = (0.3, 0.3)
    X, y = make_elastic_FE_strain_random(n_samples=1,
                                         elastic_modulus=elastic_modulus,
                                         poissons_ratio=poissons_ratio,
                                         size=(5, 5))