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

📄 findqsh.c

📁 su 的源代码库
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       *//* Copyright (c) Colorado School of Mines, 1999.*//* All rights reserved.                       */#include "par.h"int findqSH(float si, float co, float pl, float a1212, float a1223, float 		a2323, float *pxnew, float *pznew, float *vgx, float *vgz, int r)/*****************************************************************************Continue slowness across interface ******************************************************************************Input:s,c		slope of interface measured with respect to horizontalpl		tangential component of slownessaijkl		density-normalized stiffness elementsr		=1 reflection =0 transmission******************************************************************************Output:*pxnew		address pointing to new px*pznew 		address pointing to new pz-1		no root found1		root found*vgx,*vgz  	group velocity pointers*g11,*g33,*g13  polarizations*****************************************************************************Author: Andreas Rueger, Colorado School of Mines, 02/01/94 */{	float n1,n3,a,b,c,sqr,b1,b3;	float eta=0.0,px,pz,vgxd,vgzd,vgm;	/* unit vector h normal to edge */ 	n1 = -si; 	n3 = co;	b1 = pl*co;	b3 = pl*si;	a  = n1*n1*a1212 + n3*n3*a2323 + 2* n1*n3*a1223;	b  = 2*(b1*n1*a1212 + b3*n3*a2323 +a1223*(b1*n3 + b3*n1));	c  = b1*b1*a1212 + b3*b3*a2323 + 2*a1223*b1*b3 -1;	sqr = b*b-4*a*c;	if(sqr < 0)		return 0;	else if(ABS(a) < FLT_EPSILON)		return 0;	else if(r == 0){		sqr = sqrt(sqr);		eta = 0.5/a * (sqr-b);	} else if(r == 1){		sqr = sqrt(sqr);		eta = 0.5/a * (-sqr-b);	} else 		err(" ERROR in findqSH \n");	px = b1+eta*n1;	pz = b3+eta*n3;	vgxd = a1212*px + a1223*pz;	vgzd = a1223*px + a2323*pz;	vgm=-si*vgxd+co*vgzd;	if((vgm > 0 && r == 1) || (vgm < 0 && r == 0))		return 0;	else {		*pxnew = px;		*pznew = pz;		*vgx   = vgxd;		*vgz   = vgzd;		return 1;	}}

⌨️ 快捷键说明

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