Пример #1
0
def test_elastic_FE_simulation_3D():
    from pymks.datasets.elastic_FE_simulation import ElasticFESimulation
    nx = 5
    ii = (nx - 1) / 2
    X = np.zeros((1, nx, nx, nx), dtype=int)
    X[0, :, ii] = 1
    model = ElasticFESimulation(elastic_modulus=(1., 10.),
                                poissons_ratio=(0., 0.))
    model.run(X)
    solution = [1., 0., 0., 0., 0., 0.]
    assert np.allclose([np.mean(model.strain[0, ..., i]) for i in range(6)], solution)
Пример #2
0
def test_elastic_FE_simulation_3D():
    from pymks.datasets.elastic_FE_simulation import ElasticFESimulation
    nx = 5
    ii = (nx - 1) / 2
    X = np.zeros((1, nx, nx, nx), dtype=int)
    X[0, :, ii] = 1
    model = ElasticFESimulation(elastic_modulus=(1., 10.),
                                poissons_ratio=(0., 0.))
    model.run(X)
    solution = [1., 0., 0., 0., 0., 0.]
    assert np.allclose([np.mean(model.strain[0, ..., i]) for i in range(6)],
                       solution)
Пример #3
0
def test_elastic_FE_simulation_3D_BCs():
    from pymks.datasets.elastic_FE_simulation import ElasticFESimulation
    np.random.seed(8)
    N = 4
    X = np.random.randint(2, size=(1, N, N, N))
    macro_strain = 0.1
    sim = ElasticFESimulation((10.0, 1.0), (0.3, 0.3), macro_strain=0.1)
    sim.run(X)
    u = sim.displacement[0]
    ## Check the left/right offset
    assert np.allclose(u[-1, ..., 0] - u[0, ..., 0], N * macro_strain)
    ## Check the left/right y-periodicity
    assert np.allclose(u[0, ..., 1], u[-1, ..., 1])
Пример #4
0
def test_elastic_FE_simulation_3D_BCs():
    from pymks.datasets.elastic_FE_simulation import ElasticFESimulation
    np.random.seed(8)
    N = 4
    X = np.random.randint(2, size=(1, N, N, N))
    macro_strain = 0.1
    sim = ElasticFESimulation((10.0, 1.0), (0.3, 0.3), macro_strain=0.1)
    sim.run(X)
    u = sim.displacement[0]
    ## Check the left/right offset
    assert np.allclose(u[-1, ..., 0] - u[0, ..., 0], N * macro_strain)
    ## Check the left/right y-periodicity
    assert np.allclose(u[0, ..., 1], u[-1, ..., 1])
def test_issue106():
    from pymks.datasets.elastic_FE_simulation import ElasticFESimulation
    import numpy as np
    L = 5
    elastic_modulus = (1, 2, 3)
    poissons_ratio = (0.3, 0.3, 0.3)
    size = (1, L, L)
    sim = ElasticFESimulation(elastic_modulus=elastic_modulus,
                              poissons_ratio=poissons_ratio)
    X = np.zeros(size, dtype=int)
    sim.run(X)
    X = np.ones(size, dtype=int)
    sim.run(X)
    X[0, 0, 0] = -1

    with pytest.raises(RuntimeError) as excinfo:
        sim.run(X)
    assert "X must be between 0 and 2." == str(excinfo.value)
def test_issue106():
    from pymks.datasets.elastic_FE_simulation import ElasticFESimulation
    import numpy as np
    L = 5
    elastic_modulus = (1, 2, 3)
    poissons_ratio = (0.3, 0.3, 0.3)
    size = (1, L, L)
    sim = ElasticFESimulation(elastic_modulus=elastic_modulus,
                              poissons_ratio=poissons_ratio)
    X = np.zeros(size, dtype=int)
    sim.run(X)
    X = np.ones(size, dtype=int)
    sim.run(X)
    X[0, 0, 0] = -1

    with pytest.raises(RuntimeError) as excinfo:
        sim.run(X)
    assert "X must be between 0 and 2." == str(excinfo.value)