| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1712 人关注过本帖
标题:debug assertion failed
只看楼主 加入收藏
dongyanni80
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-10-24
收藏
 问题点数:0 回复次数:4 
debug assertion failed
        各位高手,借贵宝地问个问题啊,我编写一个很简单的计算程序,编译通过,但是在运行时却出现"debug assertion failed"的情况,不知道是什么原因引起的。另,该程序以前是可以运行的,我稍微修改了一下就出现这个问题了,我所修改的东西里面也就加入了一些幂函数,对数函数之类的库函数,并没有其它改动,不知原因何在,希望大家帮我解答,先谢了!
搜索更多相关主题的帖子: assertion debug failed 函数 
2006-10-24 16:15
majia775
Rank: 1
等 级:新手上路
威 望:2
帖 子:94
专家分:0
注 册:2006-9-11
收藏
得分:0 

把你程序贴出来啊


我不是随便的人,我随便起来不是人.... http://majia775.
2006-10-24 18:28
werewolf007
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-10-24
收藏
得分:0 

是呀,程序铁出来呀

还有就是你可以看看你的头文件有没有写全


2006-10-24 19:02
dongyanni80
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-10-24
收藏
得分:0 

#include "StdAfx.h"
#include<math.h>
#include "Functions.h"
#define PI 3.14159265358979

//已知夹杂的泊松比及长径比求Eshelby张量各分量
void Eshelby(double v,double a,double (*E)[3][3][3])
{
ASSERT(E!=NULL);
ASSERT(v>0&&v<1);

int i,j,k,l;
float g=0,h=0,s=0;
memset(&E[0][0][0][0],0,3*3*3*3*sizeof(double));
s=pow(a,2);
h=log(a+sqrt(s-1));
g=(s*sqrt(s-1)-a*h)/pow(s-1,1.5);
E[0][0][0][0]=((1-2*v+(3*s-1)/(s-1))-(1-2*v+(3*s)/(s-1))*g)/(2*(1-v));
E[1][1][1][1]=E[2][2][2][2]=((3*s)/(8*(1-v)*(s-1))+(1-2*v-9/(4*(s-1)))*g)/(4*(1-v));
E[1][1][2][2]=E[2][2][1][1]=(s/(2*(s-1))-(1-2*v+9/(4*(s-1)))*g)/(4*(1-v));
E[1][1][0][0]=E[2][2][0][0]=((2*s)/(s-1)+((3*s)/(s-1)-(1-2*v))*g)/(4*(1-v));
E[1][2][1][2]=E[2][1][2][1]=(s/(2*(s-1))-((1-2*v+3/(4*(s-1)))*g))/(4*(1-v));
E[0][1][0][1]=E[0][2][0][2]=(1-2*v-((s+1)/(s-1))-0.5*(1-2*v+(3*(s+1)/(s-1)))*g)/(4*(1-v));



for (i=0;i<3;i++)
for (j=0;j<3;j++)
for (k=0;k<3;k++)
for (l=0;l<3;l++)
cout<<"The Eshelby tensor E["<<i<<"]["<<j<<"]["<<k<<"]["<<l<<"]="<<E[i][j][k][l]<<endl;

}

void Run()
{
double v0,v1,a,E0,E1,c,u0,u1,x0,x1;
double E11,E22,u12,u23,v12;
v0 =0;
u1 =0;
x0=0;
x1=0;
E11=0;
E22=0;
u12=0;
u23=0;
v12=0; v0=0.38;//基体泊松比
v1=0.2;//纤维泊松比
E0=1000000;//基体杨氏模量
E1=30000000;//纤维杨氏模量
a=100000;//纤维长径比
c=0.2;//体积百分含量


//将杨氏模量及泊松比转换成拉梅常数x与u

x0=v0*E0/((1+v0)*(1-2*v0));
cerr<<x0<<endl;
x1=v1*E1/((1+v1)*(1-2*v1));
cerr<<x1<<endl;
ASSERT(v0!=NULL);
u0=E0/(2*(1+v0));
cerr<<u0<<endl;
u1=E1/(2*(1+v1));
cerr<<u1<<endl;
double (*E)[3][3][3] = new double[3][3][3][3];
Eshelby(v0,a,E);

double D1=0,D2=0,D3=0,B1=0,B2=0,B3=0,B4=0,B5=0,A1=0,A2=0,A3=0,A4=0,A5=0,A=0;
D1=1+2*(u1-u0)/(x1-x0);
cerr<<D1<<endl;
D2=(x0+2*u0)/(x1-x0);
cerr<<D2<<endl;
D3=x0/(x1-x0);
cerr<<D3<<endl;
B1=c*D1+D2+(1-c)*(D1*E[0][0][0][0]+2*E[1][1][0][0]);
cerr<<B1<<endl;
B2=c+D3+(1-c)*(D1*E[0][0][1][1]+E[1][1][1][1]+E[1][1][2][2]);
cerr<<B2<<endl;
B3=c+D3+(1-c)*(E[0][0][0][0]+(1+D1)*E[1][1][0][0]);
cerr<<B3<<endl;
B4=c*D1+D2+(1-c)*(E[0][0][1][1]+D1*E[1][1][1][1]+E[1][1][2][2]);
cerr<<B4<<endl;
B5=c+D3+(1-c)*(E[0][0][1][1]+E[1][1][1][1]+D1*E[1][1][2][2]);

cerr<<B5<<endl;

A1=D1*(B4+B5)-2*B2;
cerr<<A1<<endl;
A2=(1+D1)*B2-(B4+B5);
cerr<<A2<<endl;
A3=B1-D1*B3;
cerr<<A3<<endl;
A4=(1+D1)*B1-2*B3;
cerr<<A4<<endl;
A5=(1-D1)/(B4-B5);
cerr<<A5<<endl;

A=2*B2*B3-B1*(B4+B5);
cerr<<A<<endl;

//计算复合材料等效弹性模量
E11=E0/(1+c*(A1+2*v0*A2)/A);//计算纵向杨氏模量
E22=E0/(1+c*((1-v0)*A4+(1+v0)*A5*A-2*v0*A3)/(2*A));//横向杨氏模量
u12=u0+(c*u0)/(u0/(u1-u0)+2*(1-c)*E[0][1][0][1]);//面内剪切模量
u23=u0+(c*u0)/(u0/(u1-u0)+2*(1-c)*E[1][2][1][2]);//面外剪切模量
v12=(v0*A-c*(A3-v0*A4))/(A+c*(A1+2*v0*A2));//主泊松比
cout<<"纵向杨氏模量 E11="<<E11<<endl;
cout<<"横向杨氏模量 E22="<<E22<<endl;
cout<<"面内剪切模量 u12="<<u12<<endl;
cout<<"面外剪切模量 u23="<<u23<<endl;
cout<<"主泊松比 v12="<<v12<<endl;


delete []E;

}
上面是我的程序,大家帮我看看

2006-10-25 17:51
dongyanni80
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-10-24
收藏
得分:0 

还是没人啊,我等的好着急啊

2006-10-26 12:59
快速回复:debug assertion failed
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027945 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved