def test_behaviour(self): h = mgis_bv.Hypothesis.Tridimensional b = self.__get_behaviour(h) # path to the test library version = os.environ['MGIS_TEST_TFEL_VERSION'] self.assertTrue(b.behaviour == "TensorialExternalStateVariableTest", "invalid behaviour name") self.assertTrue(b.hypothesis == h, "invalid hypothesis") self.assertTrue(b.source == "TensorialExternalStateVariableTest.mfront", "invalid source") self.assertTrue(b.tfel_version == version, "invalid TFEL version") self.assertTrue(mgis_bv.getArraySize(b.esvs, b.hypothesis) == 55, "invalid array size for the external state variables") esvnames = ["Temperature", "v_esv", "v2_esv[0]", "v2_esv[1]", "s_esv", "s2_esv[0]", "s2_esv[1]", "t_esv", "t2_esv[0]", "t2_esv[1]"] esvtypes = [mgis_bv.VariableType.SCALAR, mgis_bv.VariableType.VECTOR, mgis_bv.VariableType.VECTOR, mgis_bv.VariableType.VECTOR, mgis_bv.VariableType.STENSOR, mgis_bv.VariableType.STENSOR, mgis_bv.VariableType.STENSOR, mgis_bv.VariableType.TENSOR, mgis_bv.VariableType.TENSOR, mgis_bv.VariableType.TENSOR] esvsizes = [1, 3, 3, 3, 6, 6, 6, 9, 9, 9] for i in range(0, 10): self.assertTrue(b.esvs[i].name == esvnames[i], "invalid external state variable name") self.assertTrue(b.esvs[i].type == esvtypes[i], "invalid external variable type") self.assertTrue(mgis_bv.getVariableSize(b.esvs[i], b.hypothesis) == esvsizes[i], "invalid external variable type") pass
def get_tangent_block_sizes(self): return [tuple([mgis_bv.getVariableSize(tt, self.hypothesis) for tt in t]) \ for t in self.behaviour.tangent_operator_blocks]
def get_flux_sizes(self): return [ mgis_bv.getVariableSize(svar, self.hypothesis) for svar in self.behaviour.thermodynamic_forces ]
def get_gradient_sizes(self): return [ mgis_bv.getVariableSize(svar, self.hypothesis) for svar in self.behaviour.gradients ]
def get_internal_state_variable_sizes(self): return [ mgis_bv.getVariableSize(svar, self.hypothesis) for svar in self.behaviour.internal_state_variables ]
def get_material_property_sizes(self): return [ mgis_bv.getVariableSize(svar, self.hypothesis) for svar in self.behaviour.mps ]