⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 model2d.h

📁 crack modeling with xfem
💻 H
字号:
/* 2008 (c) Dorival M. Pedroso */#ifndef MPM_MODEL2D_H#define MPM_MODEL2D_H// Local#include "defs.h"#include "array.h"#include "fatal.h"#include "tensors.h"//////////////////////////////////////////////////////////////////////////////////////////// Model2D /////class Model2D{public:	/** Constructor. */	Model2D () {}	/** Destructor. */	virtual ~Model2D () {}	// Methods to be overloaded	virtual void Update (STensor2 const & Deps) =0; ///< Update Sig and Eps for given Deps	// Access methods (read)	STensor2 const & Sig () const { return _sig; }	STensor2 const & Eps () const { return _eps; }	// Access methods (write)	STensor2 & Sig () { return _sig; }	STensor2 & Eps () { return _eps; }protected:	STensor2 _sig; ///< Stress on this point (sx,sy,sz,SQ2*sxy,SQ2*syz,SQ2*sxz)	STensor2 _eps; ///< Strain on this point (ex,ey,sz,SQ2*exy,SQ2*eyz,SQ2*exz)}; // class Model2D/////////////////////////////////////////////////////////////////////////////////////////// LinEls2D /////class LinEls2D : public Model2D{public:	/** Constructor. */	LinEls2D (Array<double> const & Prms, Array<double> const & Inis)	{		// Check		if (Prms.Size()!=2) throw new Fatal("LinEls2D: Number of parameters must be equal to 2 { E, nu }");		if (Inis.Size()!=6) throw new Fatal("LinEls2D: Number of initial values must be equal to 6 { sx,sy,sz,sxy,syz,sxz }");		// Parameters		double E  = Prms[0];		double nu = Prms[1];		// Calculate elastic tangent tensor		AddScaled (    E/ (1.0+nu)               , SymII   ,		            nu*E/((1.0+nu)*(1.0-2.0*nu)) , SymIdyI , _De ); // _De = a*SymII + b*SymIdyI		// Initial values		_sig = Inis[0], Inis[1], Inis[2], SQ2*Inis[3], SQ2*Inis[4], SQ2*Inis[5];		_eps = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;	}	/** Methods. */	void Update (STensor2 const & Deps) ///< Update Sig and Eps for given Deps	{		// Calculate stress increments		STensor2 dsig;		Dot (_De, Deps,  dsig); // dsig = _De : Deps		// Update strains		_eps += Deps;				// Update stress		_sig += dsig;	}private:	STensor4 _De; ///< Fourth-order symmetric stiffness tensor}; // class Model2D#endif // MPM_MODEL2D_H/* 2008 (c) Dorival M. Pedroso */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -