# include # include # include "complex.h" # include # include # include "stdlib.h" long double c0, bt, fr,alpha, Z0, I0, u0, a, k0, r0, zmax, rmax; long double pi= atan(1); FILE *fic1,*fic2; long double ma, ld; long double dr, dz; complex *ui,*uf; void init (int iz, int jr) { /////////////////////////////////////////////////////////////// /////////////// Initialisation des constantes /////////////// /////////////////////////////////////////////////////////////// //Définition des constantes printf("Initialisation des constanes en cours\n"); c0=1480; // La célérité du son dans le milieu bt=3.5; // Le paramètre de la nonlinéarité fr=2.2e6; // La fréquence d'émission alpha=0.025; // L'absorption acoustique du milieu Z0=1.48e6; // L'impédance acoustique du milieu ////////////////////////////////////////////////////////////////////////// I0=1; // La puissance à la source en w/cm² u0=sqrt(2*I0*1e4/Z0); // La velocité des particules à la surface de la source a=5e-3; // Le rayon de la source k0=2*pi*fr/c0; // Le nombre d'onde r0=k0*a*a/2; // La distance de Rayleigh ////////////////////////////////////////////////////////////////////////// zmax=2.5*r0; // La distance maximal sur la direction axiale dz=zmax/iz; // Le pas d'échantillonnage sur la direction z rmax=10*a; // Le rayon maximal sur la direction radiale dr=2*rmax/jr; // Le pas d'échantillonnage sur la direction r ma=u0/c0; // Le nombre de Mach ld=c0/(bt*ma*fr); // La distance de shock if ((dz/(dr*dr)) >= (r0/(2*a*a))) // Test pour la divergence cout << "ERREUR: Risque de divergence\n"; printf("Initialisation des constante terminee avec succes\n"); } void source(int jr, int N) { /////////////////////////////////////////////////////////////// /////////////// Definition de la source /////////////// /////////////////////////////////////////////////////////////// int j,n,k; long double r; printf("Definition de la source\n"); for (n=1;n-a-(dr/2))&&(r