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

📄 triangle.2.bas_fun.c

📁 主要特点 * Flexible finite element space construction based template element library 基于模板单元库灵活的构造有限
💻 C
字号:
/**************************************************************************  triangle.2.bas_fun.c*/#define dlambda0_dx ((v[1][1] - v[2][1])/area)#define dlambda0_dy ((v[2][0] - v[1][0])/area)#define dlambda1_dx ((v[2][1] - v[0][1])/area)#define dlambda1_dy ((v[0][0] - v[2][0])/area)#define dlambda2_dx ((v[0][1] - v[1][1])/area)#define dlambda2_dy ((v[1][0] - v[0][0])/area)void get_lambda(const double * p, const double ** v, double * lambda, double * area){	area[0] = (v[1][0] - v[0][0])*(v[2][1] - v[0][1])		- (v[1][1] - v[0][1])*(v[2][0] - v[0][0]);	lambda[0] = ((v[1][0] - p[0])*(v[2][1] - p[1])		- (v[1][1] - p[1])*(v[2][0] - p[0]))/area[0];	lambda[1] = ((v[2][0] - p[0])*(v[0][1] - p[1])		- (v[2][1] - p[1])*(v[0][0] - p[0]))/area[0];	lambda[2] = ((v[0][0] - p[0])*(v[1][1] - p[1])		- (v[0][1] - p[1])*(v[1][0] - p[0]))/area[0];}void phi_1(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = lambda[0]*(2*lambda[0] - 1.0);}void phi_2(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = lambda[1]*(2*lambda[1] - 1.0);}void phi_3(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = lambda[2]*(2*lambda[2] - 1.0);}void psi_1(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = 4.0*lambda[1]*lambda[2];}void psi_2(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = 4.0*lambda[0]*lambda[2];}void psi_3(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = 4.0*lambda[0]*lambda[1];}void gradient_phi_1(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = (4.0*lambda[0] - 1.0)*dlambda0_dx;	val[1] = (4.0*lambda[0] - 1.0)*dlambda0_dy;}void gradient_phi_2(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = (4.0*lambda[1] - 1.0)*dlambda1_dx;	val[1] = (4.0*lambda[1] - 1.0)*dlambda1_dy;}void gradient_phi_3(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = (4.0*lambda[2] - 1.0)*dlambda2_dx;	val[1] = (4.0*lambda[2] - 1.0)*dlambda2_dy;}void gradient_psi_1(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = 4.0*(lambda[2]*dlambda1_dx + lambda[1]*dlambda2_dx);	val[1] = 4.0*(lambda[2]*dlambda1_dy + lambda[1]*dlambda2_dy);}void gradient_psi_2(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = 4.0*(lambda[0]*dlambda2_dx + lambda[2]*dlambda0_dx);	val[1] = 4.0*(lambda[0]*dlambda2_dy + lambda[2]*dlambda0_dy);}void gradient_psi_3(const double * p, const double ** v, void * value){	double * val = (double *)value;	double lambda[3], area;	get_lambda(p, v, lambda, &area);	val[0] = 4.0*(lambda[1]*dlambda0_dx + lambda[0]*dlambda1_dx);	val[1] = 4.0*(lambda[1]*dlambda0_dy + lambda[0]*dlambda1_dy);}/**  end of file**************************************************************************/

⌨️ 快捷键说明

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