Select Git revision
Forked from
gmsh / gmsh
Source project has a limited visibility.
-
Christophe Geuzaine authoredChristophe Geuzaine authored
mlawNonLinearTVP.cpp 96.91 KiB
//
// C++ Interface: Material Law
//
// Description: Non-Linear Thermo-Visco-Mechanics (Thermo-ViscoElasto-ViscoPlasto Law) with Non-Local Damage Interface (soon.....)
//
// Author: <Ujwal Kishore J - FLE_Knight>, (C) 2022
//
// Copyright: See COPYING file that comes with this distribution
//
//
#include "STensorOperations.h"
#include "nonLinearMechSolver.h"
#include "mlawNonLinearTVP.h"
mlawNonLinearTVP::mlawNonLinearTVP(const int num,const double E,const double nu, const double rho, const double tol,
const double Tinitial, const double Alpha, const double KThCon, const double Cp,
const bool matrixbyPerturbation, const double pert, const bool thermalEstimationPreviousConfig):
mlawNonLinearTVE(num, E, nu, rho, tol, Tinitial, Alpha, KThCon, Cp, matrixbyPerturbation, pert, thermalEstimationPreviousConfig),
_TaylorQuineyFactor(0.9), _HR(1.){
// by default, no temperature dependence
_temFunc_Sy0 = new constantScalarFunction(1.);
_temFunc_H = new constantScalarFunction(1.);
_temFunc_Hb = new constantScalarFunction(1.);
_temFunc_visc = new constantScalarFunction(1.);
};
// , mlawPowerYieldHyper(src)
mlawNonLinearTVP::mlawNonLinearTVP(const mlawNonLinearTVP& src): mlawNonLinearTVE(src) {
_TaylorQuineyFactor = src._TaylorQuineyFactor;
_HR = src._HR;
_temFunc_Sy0 = NULL; // temperature dependence of initial yield stress
if (src._temFunc_Sy0!= NULL)
_temFunc_Sy0 = src._temFunc_Sy0->clone();
_temFunc_H = NULL; // temperature dependence of hardening stress
if (src._temFunc_H != NULL)
_temFunc_H = src._temFunc_H->clone();
_temFunc_Hb = NULL; // temperature dependence of kinematic hardening
if (src._temFunc_Hb != NULL)
_temFunc_Hb = src._temFunc_Hb->clone();
_temFunc_visc = NULL; // temperature dependence of viscosity
if (src._temFunc_visc != NULL)
_temFunc_visc = src._temFunc_visc->clone();
};
mlawNonLinearTVP& mlawNonLinearTVP::operator=(const materialLaw& source){
mlawNonLinearTVE::operator=(source);
// mlawPowerYieldHyper::operator=(source);
const mlawNonLinearTVP* src =dynamic_cast<const mlawNonLinearTVP*>(&source);
if(src != NULL){
_TaylorQuineyFactor = src->_TaylorQuineyFactor;
_HR = src->_HR;
if(_temFunc_Sy0 != NULL) delete _temFunc_Sy0; // temperature dependence of initial yield stress
if (src->_temFunc_Sy0!= NULL)
_temFunc_Sy0 = src->_temFunc_Sy0->clone();
if(_temFunc_H != NULL) delete _temFunc_H; // temperature dependence of hardening stress
if (src->_temFunc_H != NULL)
_temFunc_H = src->_temFunc_H->clone();
if(_temFunc_Hb != NULL) delete _temFunc_Hb; // temperature dependence of kinematic hardening
if (src->_temFunc_Hb != NULL)