Skip to content
This repository has been archived by the owner on Nov 27, 2024. It is now read-only.

Commit

Permalink
Merge pull request #87 from pyiron/damask_alpha5
Browse files Browse the repository at this point in the history
Damask alpha5
  • Loading branch information
max-hassani authored Dec 6, 2021
2 parents 49d9fba + 86a4af8 commit cfeeb88
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 15 deletions.
2 changes: 1 addition & 1 deletion .ci_support/environment-notebooks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies:
- codacy-coverage
- damask-mesh
- damask-grid
- damask =3.0.0a4
- damask =3.0.0a5
- fenics =2019.1.0
- k3d
- matplotlib
Expand Down
36 changes: 22 additions & 14 deletions pyiron_continuum/damask/damaskjob.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,20 +106,27 @@ def _load_results(self, file_name="damask_loading.hdf5"):
self._results.add_strain()
self._results.add_equivalent_Mises('sigma')
self._results.add_equivalent_Mises('epsilon_V^0.0(F)')
self._results.add_calculation(name='avg_sigma', formula="np.average(#sigma#, axis=0)",
unit='Pa',description='average stress')
self._results.add_calculation(name='avg_strain', formula="np.average(#epsilon_V^0.0(F)#, axis=0)",
unit='', description='average strain')
self._results.add_calculation(name='avg_sigma_vM', formula="np.average(#sigma_vM#)",
unit='Pa',description='average stress VM')
self._results.add_calculation(name='avg_strain_vM', formula="np.average(#epsilon_V^0.0(F)_vM#)",
unit='', description='average strain vM')
self.output.stress = np.array([val for val in self._results.get('avg_sigma').values()])
self.output.strain = np.array([val for val in self._results.get('avg_strain').values()])
self.output.stress_von_Mises = np.array([val for val
in self._results.get('avg_sigma_vM').values()])
self.output.strain_von_Mises = np.array([val for val
in self._results.get('avg_strain_vM').values()])
self.output.stress = self.average_spatio_temporal_tensors('sigma')
self.output.strain = self.average_spatio_temporal_tensors('epsilon_V^0.0(F)')
self.output.stress_von_Mises = self.average_spatio_temporal_tensors('sigma_vM')
self.output.strain_von_Mises = self.average_spatio_temporal_tensors('epsilon_V^0.0(F)_vM')

def temporal_spatial_shape(self, name):
property_dict = self._results.get(name)
shape_list = [len(property_dict)]
for shape in property_dict[list(property_dict.keys())[0]].shape:
shape_list.append(shape)
return tuple(shape_list)

def average_spatio_temporal_tensors(self, name):
_shape = self.temporal_spatial_shape(name)
temporal_spatial_array = np.empty(_shape)
property_dict = self._results.get(name)
i = 0
for key in property_dict.keys():
temporal_spatial_array[i] = property_dict[key]
i = i + 1
return np.average(temporal_spatial_array, axis=1)

@staticmethod
def list_solvers():
Expand Down Expand Up @@ -166,3 +173,4 @@ def plot_stress_strain(self, component=None, von_mises=False):
raise ValueError("either direction should be passed in "
"or vonMises should be set to True")
return fig, ax

0 comments on commit cfeeb88

Please sign in to comment.