void LinearGeneralAnisotropicMaterial::computeQpProperties() { computeQpElasticityTensor(); computeQpStrain(); computeQpStress(); }
void ComputeStressBase::computeQpProperties() { computeQpStress(); //Add in extra stress _stress[_qp] += _extra_stress[_qp]; }
void TensorMechanicsMaterial::computeProperties() { computeStrain(); for (_qp = 0; _qp < _qrule->n_points(); ++_qp) { computeQpElasticityTensor(); computeQpStress(); } }
void TrussMaterial::computeProperties() { // check for consistency of the number of element nodes mooseAssert(_current_elem->n_nodes() == 2, "Truss element needs to have exactly two nodes."); // fetch the two end nodes for _current_elem std::vector<Node *> node; for (unsigned int i = 0; i < 2; ++i) node.push_back(_current_elem->get_node(i)); // calculate original length of a truss element RealGradient dxyz; for (unsigned int i = 0; i < _ndisp; ++i) dxyz(i) = (*node[1])(i) - (*node[0])(i); _origin_length = dxyz.norm(); // fetch the solution for the two end nodes NonlinearSystemBase & nonlinear_sys = _fe_problem.getNonlinearSystemBase(); const NumericVector<Number> &sol = *nonlinear_sys.currentSolution(); std::vector<Real> disp0, disp1; for (unsigned int i = 0; i < _ndisp; ++i) { disp0.push_back(sol(node[0]->dof_number(nonlinear_sys.number(), _disp_var[i]->number(), 0))); disp1.push_back(sol(node[1]->dof_number(nonlinear_sys.number(), _disp_var[i]->number(), 0))); } // calculate current length of a truss element for (unsigned int i = 0; i < _ndisp; ++i) dxyz(i) += disp1[i] - disp0[i]; _current_length = dxyz.norm(); for (_qp = 0; _qp < _qrule->n_points(); ++_qp) { _e_over_l[_qp] = _youngs_modulus[_qp] / _origin_length; computeQpStrain(); computeQpStress(); } }
void ComputeDeformGradBasedStress::computeQpProperties() { computeQpStress(); }