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

📄 psvreflect.c

📁 su 的源代码库
💻 C
📖 第 1 页 / 共 5 页
字号:
							ruf22=cdiv(ruf22,det);							ewigh11=cexp(cmul(gl1,cmul(wpie,cmul(cmplx(0.0,1.0),t1))));							ewigh22=cexp(cmul(gt1,cmul(wpie,cmul(cmplx(0.0,1.0),t1))));							rd0n11[ip]=cmplx(0.0,0.0);							rd0n12[ip]=cmplx(0.0,0.0);							rd0n21[ip]=cmplx(0.0,0.0);							rd0n22[ip]=cmplx(0.0,0.0);							td0n11[ip]=ewigh11;							td0n12[ip]=cmplx(0.0,0.0);							td0n21[ip]=cmplx(0.0,0.0);							td0n22[ip]=ewigh22;							tun011[ip]=ewigh11;							tun012[ip]=cmplx(0.0,0.0);							tun021[ip]=cmplx(0.0,0.0);							tun022[ip]=ewigh22;							rtb111=cmul(ewigh11,ruf11);								rtb112=cmul(ewigh11,ruf12);								rtb121=cmul(ewigh22,ruf21);								rtb122=cmul(ewigh22,ruf22);								run011[ip]=cmul(ewigh11,rtb111);								run012[ip]=cmul(ewigh22,rtb112);								run021[ip]=cmul(ewigh11,rtb121);								run022[ip]=cmul(ewigh22,rtb122);							}					}				} else {				/* layers after the first one */					/* case 1: liquid-liquid */					if ((at1.r==0.)&&(at1.i==0.)&&(at2.r==0.)&&(at2.i==0.)) {						if ((al1.r==al2.r)&&(al1.i==al2.i)) {							for (ip=0; ip<block_size; ip++) {								ijk1=ik1+ip;								gl1=gl[ijk1];								ewigh11=cexp(cmul(wpie,cmul(cmplx(0.0,1.0),cmul(t1,gl1))));								tun0p11=cmul(ewigh11,tun011[ip]);								tun0p21=cmul(ewigh11,tun021[ip]);								rtb111=cmul(ewigh11,run011[ip]);								run011[ip]=cmul(ewigh11,rtb111);								run012[ip]=cmplx(0.0,0.0);								run021[ip]=cmplx(0.0,0.0);								run022[ip]=cmplx(0.0,0.0);								td0np11=cmul(ewigh11,td0n11[ip]);								td0np12=cmul(ewigh11,td0n12[ip]);								tun011[ip]=tun0p11;								tun012[ip]=cmplx(0.0,0.0);								tun021[ip]=tun0p21;								tun022[ip]=cmplx(0.0,0.0);								td0n11[ip]=td0np11;								td0n12[ip]=td0np12;								td0n21[ip]=cmplx(0.0,0.0);								td0n22[ip]=cmplx(0.0,0.0);							}						} else {							for (ip=0; ip<block_size; ip++) {								ijk1=ik1+ip;								ijk2=ik2+ip;								psq=pp[ip];								gl1=gl[ijk1];								gt1=gt[ijk1];								gam1=gam[ijk1];								gam2=gam[ijk2];								gl2=gl[ijk2];								gt2=gt[ijk2];								ewigh11=cexp(cmul(wpie,cmul(cmplx(0.0,1.0),cmul(t1,gl1))));								a=csub(gam2,gam1);								b=cadd(rho1,a);								c=csub(rho2,a);								e=cadd(cmul(b,gl1),cmul(c,gl2));								y=cadd(cmul(gl2,rho1),cmul(gl1,rho2));								td11=cmul(cdiv(gl1,y),crmul(rho1,2.));								rd11=cdiv(csub(cmul(gl1,rho2),									cmul(gl2,rho1)),y);								tu11=cmul(cdiv(gl2,y),crmul(rho2,2.));								ru11=cneg(rd11);								ewrd11=cmul(ewigh11,rd11);								wrn011=cmul(ewigh11,run011[ip]);								rvrb111=cdiv(cmplx(1.0,0.0),csub(cmplx(1.0,0.0),cmul(wrn011,ewrd11)));								rvrb211=cadd(cmplx(1.0,0.0),cmul(rvrb111,									cmul(ewrd11,wrn011)));								ewd0211=cmul(td0n11[ip],cmul(rvrb111,ewigh11));								ewd0212=cmul(td0n12[ip],cmul(rvrb111,ewigh11));								td0n11[ip]=cmul(td11,ewd0211);								td0n12[ip]=cmul(td11,ewd0212);								td0n21[ip]=cmplx(0.0,0.0);								td0n22[ip]=cmplx(0.0,0.0);								ewtu211=cmul(rvrb211,cmul(ewigh11,tu11));								tun0p11=cmul(ewtu211,tun011[ip]);								tun0p21=cmul(ewtu211,tun021[ip]);								rtb111=cmul(ewrd11,ewd0211);								rtb112=cmul(ewrd11,ewd0212);								rd0np11=cadd(rd0n11[ip],cmul(tun011[ip],									rtb111));								rd0np12=cadd(rd0n12[ip],cmul(tun011[ip],									rtb112));								rd0np21=cadd(rd0n21[ip],cmul(tun021[ip],									rtb111));								rd0np22=cadd(rd0n22[ip],cmul(tun022[ip],									rtb112));								run011[ip]=cadd(ru11,cmul(ewtu211,									cmul(wrn011,td11)));								run012[ip]=cmplx(0.0,0.0);								run021[ip]=cmplx(0.0,0.0);								run022[ip]=cmplx(0.0,0.0);								tun011[ip]=tun0p11;								tun012[ip]=cmplx(0.0,0.0);								tun021[ip]=tun0p21;								tun022[ip]=cmplx(0.0,0.0);								rd0n11[ip]=rd0np11;								rd0n12[ip]=rd0np12;								rd0n21[ip]=rd0np21;								rd0n22[ip]=rd0np22;							}						}					} else if (((at1.r==0.)&&(at1.i==0.))&&((at2.r!=0.)||								(at2.i!=0.))) {						/* case 2: liquid-solid */						for (ip=0; ip<block_size; ip++) {							ijk1=ik1+ip;							ijk2=ik2+ip;							psq=pp[ip];							gl1=gl[ijk1];							gt1=gt[ijk1];							gam1=gam[ijk1];							gl2=gl[ijk2];							gt2=gt[ijk2];							gam2=gam[ijk2];							ewigh11=cexp(cmul(wpie,cmul(cmplx(0.0,1.0),cmul(t1,gl1))));							ewigh22=cmplx(0.0,0.0);							a=csub(gam2,gam1);							b=cadd(rho1,a);							c=csub(rho2,a);							e=cadd(cmul(gl1,b),cmul(gl2,c));							d=cdiv(crmul(rho2,2.),cmul(at2,at2));							f=b;							g=csub(a,cmul(d,cmul(gl1,gt2)));							h=cneg(cmul(d,gl2));							z=cdiv(cmplx(1.0,0.0),cadd(cmul(e,f),cmul(g,cmul(h,psq))));							y=cmul(cmul(z,gl1),crmul(rho1,2.0));							td11=cmul(y,f);							td12=cmplx(0.0,0.0);							td21=cneg(cmul(y,cmul(h,p[ip])));							td22=cmplx(0.0,0.0);							rd11=cmul(z,csub(cmul(f,csub(cmul(gl1,b),								cmul(gl2,c))),							cmul(cmul(psq,h),cadd(a,cmul(gl1,cmul(gt2,d))))));							rd12=cmplx(0.0,0.0);							rd21=cmplx(0.0,0.0);							rd22=cmplx(0.0,0.0);							y=cmul(z,crmul(rho2,2.0));							tu11=cmul(y,cmul(f,gl2));							tu12=cmul(p[ip],cmul(y,cmul(gt2,h)));							tu21=cmplx(0.0,0.0);							tu22=cmplx(0.0,0.0);							y=crmul(cmul(p[ip],cmul(gl1,cmul(b,								cmul(d,z)))),2.0);							ru11=cmul(z,csub(cmul(f,csub(cmul(gl2,c),								cmul(gl1,b))),cmul(cmul(gl2,d),cmul(g,psq))));							ru12=cmul(gt2,y);							ru21=cneg(cmul(gl2,y));							ru22=cneg(cmul(z,cadd(cmul(b,e),cmul(cmul(psq,h),								cadd(a,cmul(gl1,cmul(gt2,d)))))));							ewrd11=cmul(ewigh11,rd11);							ewrd12=cmul(ewigh11,rd12);							ewrd21=cmul(ewigh22,rd21);							ewrd22=cmul(ewigh22,rd22);							wrn011=cmul(ewigh11,run011[ip]);							wrn012=cmul(ewigh11,run012[ip]);							wrn021=cmul(ewigh22,run021[ip]);							wrn022=cmul(ewigh22,run022[ip]);							rtb111=cadd(cmul(wrn011,ewrd11),								cmul(wrn012,ewrd21));							rtb112=cadd(cmul(wrn011,ewrd12),								cmul(wrn012,ewrd22));							rtb121=cadd(cmul(wrn021,ewrd11),								cmul(wrn022,ewrd21));							rtb122=cadd(cmul(wrn021,ewrd12),								cmul(wrn022,ewrd22));							x=csub(cmplx(1.0,0.0),rtb111);							y=csub(cmplx(1.0,0.0),rtb122);							det=csub(cmul(x,y),cmul(rtb112,rtb121));							rvrb111=cdiv(y,det);							rvrb112=cdiv(rtb112,det);							rvrb121=cdiv(rtb121,det);							rvrb122=cdiv(x,det);							rtb111=cadd(cmul(rvrb111,wrn011),								cmul(rvrb112,wrn021));							rtb112=cadd(cmul(rvrb111,wrn012),								cmul(rvrb112,wrn022));							rtb121=cadd(cmul(rvrb121,wrn011),								cmul(rvrb122,wrn021));							rtb122=cadd(cmul(rvrb121,wrn012),								cmul(rvrb122,wrn022));							rtb211=cadd(cmul(ewrd11,rtb111),								cmul(ewrd12,rtb121));							rtb212=cadd(cmul(ewrd11,rtb112),								cmul(ewrd12,rtb122));							rtb221=cadd(cmul(ewrd21,rtb111),								cmul(ewrd22,rtb121));							rtb222=cadd(cmul(ewrd21,rtb112),								cmul(ewrd22,rtb122));							rvrb211=cadd(rtb211,cmplx(1.0,0.0));							rvrb212=rtb212;							rvrb221=rtb221;							rvrb222=cadd(rtb222,cmplx(1.0,0.0));							rtb111=cmul(ewigh11,td0n11[ip]);							rtb112=cmul(ewigh11,td0n12[ip]);							rtb121=cmul(ewigh22,td0n21[ip]);							rtb122=cmul(ewigh22,td0n22[ip]);							ewd0211=cadd(cmul(rtb111,rvrb111),								cmul(rvrb112,rtb121));							ewd0212=cadd(cmul(rtb112,rvrb111),								cmul(rvrb112,rtb122));							ewd0221=cadd(cmul(rtb111,rvrb121),								cmul(rvrb122,rtb121));							ewd0222=cadd(cmul(rtb112,rvrb121),								cmul(rvrb122,rtb122));							td0n11[ip]=cadd(cmul(td11,ewd0211),								cmul(td12,ewd0221));							td0n12[ip]=cadd(cmul(td11,ewd0212),								cmul(td12,ewd0222));							td0n21[ip]=cadd(cmul(td21,ewd0211),								cmul(td22,ewd0221));							td0n22[ip]=cadd(cmul(td21,ewd0212),								cmul(td22,ewd0222));							rtb111=cadd(ewigh11,tu11);							rtb112=cadd(ewigh11,tu12);							rtb121=cadd(ewigh22,tu21);							rtb122=cadd(ewigh22,tu22);							ewtu211=cadd(cmul(rvrb211,rtb111),								cmul(rvrb212,rtb121));							ewtu212=cadd(cmul(rvrb211,rtb112),								cmul(rvrb212,rtb122));							ewtu221=cadd(cmul(rvrb221,rtb111),								cmul(rvrb222,rtb121));							ewtu222=cadd(cmul(rvrb221,rtb112),								cmul(rvrb222,rtb122));							tun0p11=cadd(cmul(tun011[ip],ewtu211),								cmul(tun012[ip],ewtu221));							tun0p12=cadd(cmul(tun011[ip],ewtu212),								cmul(tun012[ip],ewtu222));							tun0p21=cadd(cmul(tun021[ip],ewtu211),								cmul(tun022[ip],ewtu221));							tun0p22=cadd(cmul(tun021[ip],ewtu212),								cmul(tun022[ip],ewtu222));							rtb111=cadd(cmul(ewrd11,ewd0211),								cmul(ewrd12,ewd0221));							rtb112=cadd(cmul(ewrd11,ewd0212),								cmul(ewrd12,ewd0222));							rtb121=cadd(cmul(ewrd21,ewd0211),								cmul(ewrd22,ewd0221)); 							rtb122=cadd(cmul(ewrd21,ewd0212),								cmul(ewrd22,ewd0222));							rtb211=cadd(cmul(rtb111,tun011[ip]),cmul(rtb121,								tun012[ip]));							rtb212=cadd(cmul(rtb112,tun011[ip]),cmul(rtb122,								tun012[ip]));							rtb221=cadd(cmul(rtb111,tun021[ip]),cmul(rtb121,								tun022[ip]));							rtb222=cadd(cmul(rtb112,tun021[ip]),cmul(rtb122,								tun022[ip]));							rd0np11=cadd(rtb211,rd0n11[ip]);							rd0np12=cadd(rtb212,rd0n12[ip]);							rd0np21=cadd(rtb221,rd0n21[ip]);							rd0np22=cadd(rtb222,rd0n22[ip]);							rtb111=cadd(cmul(wrn011,ewtu211),								cmul(ewtu221,wrn012));							rtb112=cadd(cmul(wrn011,ewtu212),								cmul(ewtu222,wrn012));							rtb121=cadd(cmul(wrn021,ewtu211),								cmul(ewtu221,wrn022));							rtb122=cadd(cmul(wrn021,ewtu212),								cmul(ewtu222,wrn022));							rtb211=cadd(cmul(td11,rtb111),cmul(td12,rtb121));							rtb212=cadd(cmul(td11,rtb112),cmul(td12,rtb122));							rtb221=cadd(cmul(td21,rtb111),cmul(td22,rtb121));							rtb222=cadd(cmul(td21,rtb112),cmul(td22,rtb122));							run011[ip]=cadd(ru11,rtb211);							run012[ip]=cadd(ru12,rtb212);							run021[ip]=cadd(ru21,rtb221);							run022[ip]=cadd(ru22,rtb222);							rd0n11[ip]=rd0np11;							rd0n12[ip]=rd0np12;							rd0n21[ip]=rd0np21;							rd0n22[ip]=rd0np22;							tun011[ip]=tun0p11;							tun012[ip]=tun0p12;							tun021[ip]=tun0p21;							tun022[ip]=tun0p22;						}					} else if ((at1.r !=0.)&&(at1.i !=0.)&&(at2.r==0.)&&						(at2.i==0.)) {						/* case 3: solid-liquid */						for (ip=0; ip<block_size; ip++) {							ijk1=ik1+ip;							ijk2=ik2+ip;							psq=pp[ip];							gl1=gl[ijk1];							gt1=gt[ijk1];							gam1=gam[ijk1];							gl2=gl[ik2];							gt2=gt[ik2];							gam2=gam[ijk2];							ewigh11=cexp(cmul(cmplx(0.0,1.0),cmul(wpie,cmul(gl1,t1))));							ewigh22=cexp(cmul(cmplx(0.0,1.0),cmul(wpie,cmul(gt1,t1))));							a=csub(gam2,gam1);							b=cadd(rho1,a);							c=csub(rho2,a);							e=cadd(cmul(b,gl1),cmul(c,gl2));							d=cdiv(crmul(rho1,-2.0),cmul(at1,at1));							f=c;							g=cneg(cmul(gl1,d));							h=csub(a,cmul(gl2,cmul(d,gt1)));							z=cdiv(cmplx(1.0,0.0),cadd(cmul(e,f),cmul(g,cmul(h,psq))));							y=cmul(z,crmul(rho1,2));							td11=cmul(y,cmul(gl1,f));							td12=cmul(y,cmul(p[ip],cmul(gt1,g)));							td21=cmplx(0.0,0.0);							td22=cmplx(0.0,0.0);							y=crmul(cmul(z,cmul(c,cmul(d,								cmul(p[ip],gl2)))),2.0);							rd11=cmul(z,csub(cmul(f,csub(cmul(gl1,b),								cmul(gl2,c))),cmul(cmul(psq,h),cmul(gl1,d))));							rd12=cmul(y,gt1);								rd21=cneg(cmul(gl1,y));							rd22=cneg(cmul(z,cadd(cmul(c,e),cmul(cadd(a,								cmul(gt1,cmul(gl2,d))),cmul(psq,g)))));							y=cmul(cmul(z,gl2),crmul(rho2,2.));							tu11=cmul(y,f);							tu12=cmplx(0.0,0.0);							tu21=cneg(cmul(y,cmul(p[ip],y)));							tu22=cmplx(0.0,0.0);							ru11=cmul(z,csub(cmul(f,csub(cmul(gl2,c),								cmul(gl1,b))),cmul(cadd(a,cmul(gl2,								cmul(d,gt1))),cmul(psq,g))));							ru12=cmplx(0.0,0.0);							ru21=cmplx(0.0,0.0);							ru22=cmplx(0.0,0.0);							ewrd11=cmul(ewigh11,rd11);							ewrd12=cmul(ewigh11,rd12);							ewrd21=cmul(ewigh22,rd21);							ewrd22=cmul(ewigh22,rd22);							wrn011=cmul(ewigh11,run011[ip]);							wrn012=cmul(ewigh11,run012[ip]);							wrn021=cmul(ewigh22,run021[ip]);							wrn022=cmul(ewigh22,run022[ip]);							rtb111=cadd(cmul(wrn011,ewrd11),								cmul(ewrd21,wrn012));							rtb112=cadd(cmul(wrn011,ewrd12),								cmul(ewrd22,wrn012));							rtb121=cadd(cmul(wrn021,ewrd11),								cmul(ewrd21,wrn022));							rtb122=cadd(cmul(wrn021,ewrd12),								cmul(ewrd22,wrn022));							x=csub(cmplx(1.0,0.0),rtb111);							y=csub(cmplx(1.0,0.0),rtb122);							det=csub(cmul(x,y),cmul(rtb112,rtb121));

⌨️ 快捷键说明

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