tests+fixes
This commit is contained in:
parent
3be0c462a8
commit
999cf53c07
|
@ -262,7 +262,7 @@ class Geom:
|
||||||
Each unique combintation of values results in a material.
|
Each unique combintation of values results in a material.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
grid,size,origin = grid_filters.cell_coord0_gridSizeOrigin(coords)
|
grid,size,origin = grid_filters.cell_coord0_gridSizeOrigin(table.get(coordinates))
|
||||||
|
|
||||||
labels_ = [labels] if isinstance(labels,str) else labels
|
labels_ = [labels] if isinstance(labels,str) else labels
|
||||||
unique,unique_inverse = np.unique(np.hstack([table.get(l) for l in labels_]),return_inverse=True,axis=0)
|
unique,unique_inverse = np.unique(np.hstack([table.get(l) for l in labels_]),return_inverse=True,axis=0)
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
from damask import ConfigMaterial
|
from damask import ConfigMaterial
|
||||||
|
from damask import Table
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def reference_dir(reference_dir_base):
|
def reference_dir(reference_dir_base):
|
||||||
|
@ -74,3 +76,14 @@ class TestConfigMaterial:
|
||||||
material_config = ConfigMaterial.load(reference_dir/'material.yaml')
|
material_config = ConfigMaterial.load(reference_dir/'material.yaml')
|
||||||
new = material_config.material_rename_homogenization({'Taylor':'isostrain'})
|
new = material_config.material_rename_homogenization({'Taylor':'isostrain'})
|
||||||
assert not new.is_complete
|
assert not new.is_complete
|
||||||
|
|
||||||
|
def test_from_table(self):
|
||||||
|
N = np.random.randint(3,10)
|
||||||
|
a = np.vstack((np.hstack((np.arange(N),np.arange(N)[::-1])),np.ones(N*2),np.zeros(N*2),np.ones(N*2))).T
|
||||||
|
t = Table(a,{'varying':2,'constant':2})
|
||||||
|
c = ConfigMaterial.from_table(t,constituents={'a':'varying','b':'1_constant'},c='2_constant')
|
||||||
|
assert len(c['material']) == N
|
||||||
|
for i,m in enumerate(c['material']):
|
||||||
|
c = m['constituents'][0]
|
||||||
|
assert m['c'] == 1 and c['b'] == 0 and c['a'] == [i,1]
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,10 @@ import numpy as np
|
||||||
|
|
||||||
from damask import VTK
|
from damask import VTK
|
||||||
from damask import Geom
|
from damask import Geom
|
||||||
|
from damask import Table
|
||||||
from damask import Rotation
|
from damask import Rotation
|
||||||
from damask import util
|
from damask import util
|
||||||
|
from damask import grid_filters
|
||||||
|
|
||||||
|
|
||||||
def geom_equal(a,b):
|
def geom_equal(a,b):
|
||||||
|
@ -371,3 +373,14 @@ class TestGeom:
|
||||||
grid = np.ones(3,dtype=int)*64
|
grid = np.ones(3,dtype=int)*64
|
||||||
geom = Geom.from_minimal_surface(grid,np.ones(3),surface,threshold)
|
geom = Geom.from_minimal_surface(grid,np.ones(3),surface,threshold)
|
||||||
assert np.isclose(np.count_nonzero(geom.material==1)/np.prod(geom.grid),.5,rtol=1e-3)
|
assert np.isclose(np.count_nonzero(geom.material==1)/np.prod(geom.grid),.5,rtol=1e-3)
|
||||||
|
|
||||||
|
|
||||||
|
def test_from_table(self):
|
||||||
|
grid = np.random.randint(60,100,3)
|
||||||
|
size = np.ones(3)+np.random.rand(3)
|
||||||
|
coords = grid_filters.cell_coord0(grid,size).reshape(-1,3,order='F')
|
||||||
|
x = np.ones(grid.prod()).reshape(-1,1)
|
||||||
|
y = np.hstack([np.arange(grid[1])]*grid[0]*grid[2]).reshape(-1,1)
|
||||||
|
t = Table(np.hstack((coords,x,y)),{'coords':3,'x':1,'y':1})
|
||||||
|
g = Geom.from_table(t,'coords',['x','y'])
|
||||||
|
assert g.N_materials == g.grid[2]
|
||||||
|
|
Loading…
Reference in New Issue