Question: Use open MPI library to parallelize the following C code: #include #include #include /* Fonction calculant le second membre des equations du mvt ici d2u/dt2

Use open MPI library to parallelize the following C code:

#include #include #include /* Fonction calculant le second membre des equations du mvt ici d2u/dt2 = -(EI/(rhoS))*d4u/dx4 + NL avec NL = (1/2)*(E/rho) . (du/dx)^2 . d2u/dx2 */ double secondMembre(int N,double dt,double dx,double E, double rho, double S, double I, double F, double *u, double *SM) { int i; double du,d2u,d3u,d4u,NL,lin; double clin, cnl, cm,cmax=0.,maxu=0.; // application des CL // bord encastre u = 0, du/dx = 0 u[0] = 0.; u[1] = 0.; SM[0]= 0.; SM[1]= 0.; // bord encastre u[N-2] = 0.; u[N-1] = 0.; SM[N-2]= 0.; SM[N-1]= 0.; // on ne resoud qu'a l'interieur du domaine, les autres points sont les CL for(i=2;i

int N,Nt,i,it; double E,b,h,S,I,rho,dt,F,cm = 0.; double *u,*v,*SM,dx; double du,d2u,d3u,d4u,NL;

FILE* fres = fopen("def.dat","w"); FILE* finit = fopen("def_init.dat","w"); FILE* fparam = fopen("param.dat","r+"); // donnees du pb fscanf(fparam,"%d",&N);// initialisation des donnes fscanf(fparam,"%d",&Nt); printf("%d %d ",N,Nt);

dx = 1.0/(double) N; E = 1.0e9; rho = 1.0e3; b = 0.02; h = 0.02; S = b*h; I = b*h*h*h/12.0; F = -1000.0; dt = 1.0e-10; // allocation memoire u = malloc(N*sizeof(double)); v = malloc(N*sizeof(double)); SM= malloc(N*sizeof(double)); // initialisation for(i=0;i

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!