introduced on the fly copying for 2D microstructures in 3 dimension
This commit is contained in:
parent
63619c1ac9
commit
103ae3cd0d
|
@ -140,7 +140,7 @@ for file in files:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
#--- read data ------------------------------------------------------------------------------------
|
#--- read data ------------------------------------------------------------------------------------
|
||||||
microstructure = numpy.zeros(info['grid'].prod(),'i')
|
microstructure = numpy.zeros(numpy.prod([2 if i == 1 else i for i in info['grid']]),'i') # 2D structures do not work
|
||||||
i = 0
|
i = 0
|
||||||
theTable.data_rewind()
|
theTable.data_rewind()
|
||||||
while theTable.data_read():
|
while theTable.data_read():
|
||||||
|
@ -155,12 +155,15 @@ for file in files:
|
||||||
microstructure[i:i+s] = items
|
microstructure[i:i+s] = items
|
||||||
i += s
|
i += s
|
||||||
|
|
||||||
#--- do work -------------------------------------------------------------------------------------
|
#--- reshape, if 2D make copy ---------------------------------------------------------------------
|
||||||
microstructure = microstructure.reshape(info['grid'],order='F')
|
nMicrostuctures = numpy.prod([2 if i == 1 else i for i in info['grid']])
|
||||||
|
if nMicrostuctures > info['grid'].prod():
|
||||||
|
microstructure[info['grid'].prod():nMicrostuctures] = microstructure[0:info['grid'].prod()]
|
||||||
|
microstructure = microstructure.reshape([2 if i == 1 else i for i in info['grid']],order='F')
|
||||||
|
|
||||||
#--- domain decomposition -------------------------------------------------------------------------
|
#--- domain decomposition -------------------------------------------------------------------------
|
||||||
numProc = int(options.p[0]*options.p[1]*options.p[2])
|
numProc = int(options.p[0]*options.p[1]*options.p[2])
|
||||||
stride = info['grid']/options.p
|
stride = numpy.array([2 if i == 1 else i for i in info['grid']],'i')/options.p
|
||||||
if numpy.any(numpy.floor(stride) != stride):
|
if numpy.any(numpy.floor(stride) != stride):
|
||||||
file['croak'].write('invalid domain decomposition.\n')
|
file['croak'].write('invalid domain decomposition.\n')
|
||||||
continue
|
continue
|
||||||
|
@ -196,7 +199,7 @@ for file in files:
|
||||||
microstructure = microstructure[index[0].flatten(),index[1].flatten(),index[2].flatten()].reshape(microstructure.shape)
|
microstructure = microstructure[index[0].flatten(),index[1].flatten(),index[2].flatten()].reshape(microstructure.shape)
|
||||||
|
|
||||||
# --- assemble header -----------------------------------------------------------------------------
|
# --- assemble header -----------------------------------------------------------------------------
|
||||||
newInfo['microstructures'] = microstructure.max()
|
newInfo['microstructures'] = microstructure[0:info['grid'][0],0:info['grid'][1],0:info['grid'][2]].max()
|
||||||
|
|
||||||
#--- report ---------------------------------------------------------------------------------------
|
#--- report ---------------------------------------------------------------------------------------
|
||||||
if (newInfo['microstructures'] != info['microstructures']):
|
if (newInfo['microstructures'] != info['microstructures']):
|
||||||
|
@ -218,7 +221,7 @@ for file in files:
|
||||||
|
|
||||||
# --- write microstructure information ------------------------------------------------------------
|
# --- write microstructure information ------------------------------------------------------------
|
||||||
formatwidth = int(math.floor(math.log10(microstructure.max())+1))
|
formatwidth = int(math.floor(math.log10(microstructure.max())+1))
|
||||||
theTable.data = microstructure.reshape((info['grid'][0],info['grid'][1]*info['grid'][2]),order='F').transpose()
|
theTable.data = microstructure[0:info['grid'][0],0:info['grid'][1],0:info['grid'][2]].reshape(numpy.prod(info['grid']),order='F').transpose()
|
||||||
theTable.data_writeArray('%%%ii'%(formatwidth))
|
theTable.data_writeArray('%%%ii'%(formatwidth))
|
||||||
|
|
||||||
#--- output finalization --------------------------------------------------------------------------
|
#--- output finalization --------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue