Two-step Hashin-Shtrikman interpolated twice
[1]:
import numpy as np
import mechmean
import mechkit
from mechmean.example_input import inp
[2]:
np.set_printoptions(linewidth=140)
[3]:
# Define isotropic constituents
inclusion = mechkit.material.Isotropic(E=inp["E_f"], nu=inp["nu_f"])
matrix = mechkit.material.Isotropic(E=inp["E_m"], nu=inp["nu_m"])
[4]:
# Define orientation averager and polairzation
averager = mechmean.orientation_averager.AdvaniTucker(N4=inp["N4"])
P_func = mechmean.hill_polarization.Factory().needle
[5]:
# Homogenize
input_dict = {
"phases": {
"inclusion": {
"material": inclusion,
"volume_fraction": inp["c_f"],
},
"matrix": {
"material": matrix,
"volume_fraction": 1.0 - inp["c_f"],
},
},
"k1": 1.0 / 2.0,
"k2": 1.0 / 2.0,
"averaging_func": averager.average,
}
hashin = mechmean.approximation.HSW2StepInterpolatedReferenceMaterial(**input_dict)
C_eff = hashin.calc_C_eff()
[6]:
print("Effective stiffness Hashin Shtrikman two step with two interpolations")
print(C_eff)
Effective stiffness Hashin Shtrikman two step with two interpolations
[[ 1.63102824e+01 6.58025250e+00 5.92268990e+00 -1.30273244e-02 -1.54212831e-01 3.41663919e-01]
[ 6.58025250e+00 1.47855403e+01 5.97255588e+00 -1.76997935e-02 -2.17124072e-02 3.06640385e-01]
[ 5.92268990e+00 5.97255588e+00 1.22565235e+01 -1.95743285e-04 -4.24225377e-02 -2.81542424e-02]
[-1.30273244e-02 -1.76997935e-02 -1.95743285e-04 6.86934068e+00 9.09581576e-02 -8.37665265e-02]
[-1.54212831e-01 -2.17124072e-02 -4.24225377e-02 9.09581576e-02 7.21591508e+00 -2.59557689e-02]
[ 3.41663919e-01 3.06640385e-01 -2.81542424e-02 -8.37665265e-02 -2.59557689e-02 9.71821602e+00]]