亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c_jacobi03.c

?? program to solve a finite difference discretization of Helmholtz equation : (
?? C
字號:
/* ***********************************************************************  This program is part of the        OpenMP Source Code Repository        http://www.pcg.ull.es/ompscr/        e-mail: ompscr@etsii.ull.es   Copyright (c) 2004, OmpSCR Group   All rights reserved.   Redistribution and use in source and binary forms, with or without modification,    are permitted provided that the following conditions are met:     * Redistributions of source code must retain the above copyright notice,        this list of conditions and the following disclaimer.      * Redistributions in binary form must reproduce the above copyright notice,        this list of conditions and the following disclaimer in the documentation        and/or other materials provided with the distribution.      * Neither the name of the University of La Laguna nor the names of its contributors        may be used to endorse or promote products derived from this software without        specific prior written permission.    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.   IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,    OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY    OF SUCH DAMAGE.  FILE:              c_jacobi03.c  VERSION:           1.0  DATE:              Oct 2004  AUTHORS:           Author:       Joseph Robicheaux, Kuck and Associates, Inc. (KAI), 1998                     Modified:     Sanjiv Shah,       Kuck and Associates, Inc. (KAI), 1998                     This version: Dieter an Mey,     Aachen University (RWTH), 1999 - 2003                                   anmey@rz.rwth-aachen.de                                   http://www.rwth-aachen.de/People/D.an.Mey.html  COMMENTS TO:       ompscr@etsii.ull.es  DESCRIPTION:       program to solve a finite difference discretization of Helmholtz equation :                      (d2/dx2)u + (d2/dy2)u - alpha u = f using Jacobi iterative method.  COMMENTS:          OpenMP version 3: 1 PR outside the iteration loop, 4 Barriers                       Directives are used in this code to achieve paralleism.                      All do loops are parallized with default 'static' scheduling.  REFERENCES:        http://www.rz.rwth-aachen.de/computing/hpc/prog/par/openmp/jacobi.html  BASIC PRAGMAS:     parallel for  USAGE:             ./c_jacobi03.par 5000 5000 0.8 1.0 1000  INPUT:             n - grid dimension in x direction                     m - grid dimension in y direction                     alpha - Helmholtz constant (always greater than 0.0)                     tol   - error tolerance for iterative solver                     relax - Successice over relaxation parameter                     mits  - Maximum iterations for iterative solver  OUTPUT:            Residual and error                      u(n,m) - Dependent variable (solutions)                     f(n,m) - Right hand side function   FILE FORMATS:      -  RESTRICTIONS:      -  REVISION HISTORY:**************************************************************************/#include <stdio.h>#include <math.h>#include <stdlib.h>#include "OmpSCR.h"#define U(i,j) u[(i)*n+(j)]#define F(i,j) f[(i)*n+(j)]#define NUM_ARGS  6#define NUM_TIMERS 1int n, m, mits;double tol, relax, alpha;void jacobi (int n, int m, double dx, double dy,              double alpha, double omega,              double *u, double *f,              double tol, int maxit );/******************************************************* Initializes data * Assumes exact solution is u(x,y) = (1-x^2)*(1-y^2)*******************************************************/void initialize(                  int n,                    int m,                double alpha,                double *dx,                double *dy,                double *u,                double *f){  int i,j,xx,yy;  *dx = 2.0 / (n-1);  *dy = 2.0 / (m-1);  /* Initilize initial condition and RHS */  for (j=0; j<m; j++){    for (i=0; i<n; i++){      xx = -1.0 + *dx * (i-1);      yy = -1.0 + *dy * (j-1);      U(j,i) = 0.0;      F(j,i) = -alpha * (1.0 - xx*xx) * (1.0 - yy*yy)                - 2.0 * (1.0 - xx*xx) - 2.0 * (1.0 - yy*yy);    }  }      }/************************************************************* Checks error between numerical and exact solution *************************************************************/void error_check(                 int n,                 int m,                 double alpha,                 double dx,                 double dy,                 double *u,                 double *f){  int i,j;  double xx, yy, temp, error;  dx = 2.0 / (n-1);  dy = 2.0 / (n-2);  error = 0.0;  for (j=0; j<m; j++){    for (i=0; i<n; i++){      xx = -1.0 + dx * (i-1);      yy = -1.0 + dy * (j-1);      temp = U(j,i) - (1.0 - xx*xx) * (1.0 - yy*yy);      error += temp*temp;    }  } error = sqrt(error)/(n*m);  printf("Solution Error : %g\n", error);}int main(int argc, char **argv){    double *u, *f, dx, dy;    double dt, mflops;    int NUMTHREADS;    char *PARAM_NAMES[NUM_ARGS] = {"Grid dimension: X dir =", "Grid dimension: Y dir =", "Helmhotlz constant =",                                    "Successive over-relaxation parameter =",                                    "error tolerance for iterative solver =", "Maximum iterations for solver ="};     char *TIMERS_NAMES[NUM_TIMERS] = {"Total_time"};    char *DEFAULT_VALUES[NUM_ARGS] = {"5000", "5000", "0.8", "1.0", "1e-7", "1000"};   NUMTHREADS = omp_get_max_threads();   OSCR_init (NUMTHREADS, "Jacobi Solver v1", "Use 'jacoib03' <n> <m> <alpha> <relax> <tol> <mits>", NUM_ARGS,                PARAM_NAMES, DEFAULT_VALUES , NUM_TIMERS, NUM_TIMERS, TIMERS_NAMES,                argc, argv);    n = OSCR_getarg_int(1);    m = OSCR_getarg_int(2);    alpha = OSCR_getarg_double(3);    relax = OSCR_getarg_double(4);    tol = OSCR_getarg_double(5);    mits = OSCR_getarg_int(6);    printf("-> %d, %d, %g, %g, %g, %d\n",           n, m, alpha, relax, tol, mits);        u = (double *) OSCR_malloc(n*m*sizeof(double));    f = (double *) OSCR_malloc(n*m*sizeof(double));    /* arrays are allocated and initialzed */    initialize(n, m, alpha, &dx, &dy, u, f);        /* Solve Helmholtz eqiation */    OSCR_timer_start(0);    jacobi(n, m, dx, dy, alpha, relax, u,f, tol, mits);    OSCR_timer_stop(0);    dt = OSCR_timer_read(0);    printf(" elapsed time : %12.6f\n", dt);    mflops = (0.000001*mits*(m-2)*(n-2)*13) / dt;    printf(" MFlops       : %12.6g (%d, %d, %d, %g)\n",mflops, mits, m, n, dt);    error_check(n, m, alpha, dx, dy, u, f);       OSCR_report(1, TIMERS_NAMES);       return 0;}/*       subroutine jacobi (n,m,dx,dy,alpha,omega,u,f,tol,maxit)******************************************************************* Subroutine HelmholtzJ* Solves poisson equation on rectangular grid assuming : * (1) Uniform discretization in each direction, and * (2) Dirichlect boundary conditions * * Jacobi method is used in this routine ** Input : n,m   Number of grid points in the X/Y directions *         dx,dy Grid spacing in the X/Y directions *         alpha Helmholtz eqn. coefficient *         omega Relaxation factor *         f(n,m) Right hand side function *         u(n,m) Dependent variable/Solution*         tol    Tolerance for iterative solver *         maxit  Maximum number of iterations ** Output : u(n,m) - Solution ******************************************************************/void jacobi ( const int n, const int m, double dx, double dy, double alpha, 	double omega, double *u, double *f, double tol, int maxit ){  int i,j,k;  double error, resid, ax, ay, b;  double *uold;  /* wegen Array-Kompatibilitaet, werden die Zeilen und Spalten (im Kopf)	 getauscht, zB uold[spalten_num][zeilen_num]; bzw. wir tuen so, als ob wir das	 gespiegelte Problem loesen wollen */  uold = (double *)OSCR_malloc(sizeof(double) * n *m);  ax = 1.0/(dx * dx); /* X-direction coef */  ay = 1.0/(dy*dy); /* Y_direction coef */  b = -2.0/(dx*dx)-2.0/(dy*dy) - alpha; /* Central coeff */  error = 10.0 * tol;  k = 1;#pragma omp parallel private(resid, i)  {	while (k <= maxit && error > tol) {	  /* copy new solution into old */#pragma omp for	  for (j=0; j<m; j++)		for (i=0; i<n; i++)		  uold[i + m*j] = u[i + m*j];	  /* compute stencil, residual and update */#pragma omp for reduction(+:error)		for (i=1; i<n-1; i++){		  resid =(				  ax * (uold[i-1 + m*j] + uold[i+1 + m*j])				  + ay * (uold[i + m*(j-1)] + uold[i + m*(j+1)])				  + b * uold[i + m*j] - f[i + m*j]				  ) / b;		  		  /* update solution */		  u[i + m*j] = uold[i + m*j] - omega * resid;		  /* accumulate residual error */		  error =error + resid*resid;				} /* end for */	  /* error check */#pragma omp master	  {		k++;		error = sqrt(error) /(n*m);	  }	} /* while */	  } /* end parallel */  printf("Total Number of Iteratuons %d\n", k);  printf("Residual                   %.15f\n", error);  free(uold);} 	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产一区二区三精品乱码| 日韩精品亚洲专区| 欧美日韩国产另类一区| 福利电影一区二区| 国产盗摄精品一区二区三区在线| 日韩国产在线一| 亚洲伦在线观看| 亚洲免费看黄网站| 亚洲三级理论片| 中文字幕国产一区| 国产精品久久看| 一区二区三区精品| 爽好久久久欧美精品| 日韩黄色片在线观看| 国内精品第一页| av综合在线播放| 欧美人xxxx| 久久久久久综合| 自拍偷自拍亚洲精品播放| 亚洲成人1区2区| 国产中文字幕一区| 99视频一区二区| 制服丝袜亚洲播放| 欧美精品一区二区久久婷婷| 国产午夜精品久久| 亚洲一区二区四区蜜桃| 日韩精品成人一区二区三区| 国产乱子轮精品视频| 99在线精品免费| 在线成人av网站| 久久久91精品国产一区二区精品| 久久综合给合久久狠狠狠97色69| 国产日韩视频一区二区三区| 成人欧美一区二区三区在线播放| 国产欧美日韩亚州综合| 日韩理论片在线| 久久精品久久综合| 99国产欧美另类久久久精品| 91麻豆精品国产| 1024成人网| 久久国内精品自在自线400部| 国产成人超碰人人澡人人澡| 欧美无砖专区一中文字| 久久这里都是精品| 奇米影视一区二区三区| www.日本不卡| 日韩三区在线观看| 国产日韩欧美一区二区三区乱码| 视频一区二区三区入口| 91丨九色丨蝌蚪富婆spa| 精品久久99ma| 视频一区在线播放| 欧美中文字幕一区二区三区亚洲 | 99九九99九九九视频精品| 国产精品免费看片| 国产精品久久久久久一区二区三区| 亚洲人成网站色在线观看| 激情偷乱视频一区二区三区| 色婷婷国产精品| 精品99一区二区三区| 亚洲精选视频免费看| 国产精品综合av一区二区国产馆| 制服丝袜av成人在线看| 亚洲第一综合色| 欧美日韩一区不卡| 日韩高清中文字幕一区| 欧美在线观看一区| 亚洲视频一二区| av在线不卡网| 国产精品麻豆久久久| 99视频一区二区| 亚洲天堂福利av| 97se亚洲国产综合在线| 国产精品久久久久久久久免费丝袜| 国产精品亚洲一区二区三区妖精| 欧美大片一区二区| 另类小说综合欧美亚洲| 精品少妇一区二区三区 | 欧美色网一区二区| 亚洲综合999| 欧美理论片在线| 日本在线观看不卡视频| 制服丝袜一区二区三区| 九色综合狠狠综合久久| 久久网这里都是精品| 国产成人av自拍| 亚洲日本一区二区三区| 91国在线观看| 美日韩黄色大片| 26uuu久久天堂性欧美| 国产精品 日产精品 欧美精品| 国产欧美日韩亚州综合 | 麻豆国产精品视频| 亚洲精品在线三区| 成人性生交大片免费看视频在线| 亚洲天堂中文字幕| 欧美精品第1页| 国产精品自拍三区| 亚洲欧洲成人自拍| 91精品在线观看入口| 国产一区二区主播在线| 国产精品免费久久| 在线观看91av| 成人性视频免费网站| 亚洲一二三区视频在线观看| 欧美一级xxx| 成人黄色一级视频| 日韩av一区二区三区四区| 久久久久久99久久久精品网站| 91在线视频观看| 美女mm1313爽爽久久久蜜臀| 欧美国产一区视频在线观看| 欧美午夜精品理论片a级按摩| 精品亚洲porn| 国产在线播放一区三区四| 亚洲女厕所小便bbb| 日韩三级精品电影久久久| 99免费精品视频| 精品亚洲国产成人av制服丝袜| 亚洲精品自拍动漫在线| 久久在线观看免费| 欧美自拍丝袜亚洲| 成人黄动漫网站免费app| 麻豆成人综合网| 亚洲午夜久久久久久久久电影院| 国产亚洲欧美日韩俺去了| 精品1区2区3区| 91视频国产资源| 高清国产一区二区三区| 蜜臀精品一区二区三区在线观看 | 精品久久人人做人人爱| 欧美性猛片xxxx免费看久爱| 国产精品资源网| 午夜精品国产更新| 中文字幕在线不卡一区| 国产日韩精品一区| 91麻豆精品国产自产在线观看一区 | 欧美色区777第一页| 成人一区二区视频| 精品亚洲成a人在线观看| 日本午夜一区二区| 五月天网站亚洲| 亚洲国产日韩av| 亚洲综合免费观看高清完整版 | 国内精品免费在线观看| 欧美a级一区二区| 亚洲国产精品影院| 亚洲国产裸拍裸体视频在线观看乱了 | 国产精品久线观看视频| 久久久久久久久97黄色工厂| 337p粉嫩大胆噜噜噜噜噜91av| 91精品免费在线| 欧美一区二区成人6969| 3d成人动漫网站| 日韩欧美一区中文| 日韩精品自拍偷拍| 337p日本欧洲亚洲大胆精品| 精品免费日韩av| 久久婷婷国产综合精品青草| 精品福利一二区| 国产视频不卡一区| 综合久久一区二区三区| 亚洲一区二区高清| 亚洲成人精品影院| 免费成人性网站| 国产一区二区三区在线观看免费 | 国产一区91精品张津瑜| 国产自产视频一区二区三区| 成人性生交大片免费看中文| av日韩在线网站| 欧美日韩国产乱码电影| 日韩欧美黄色影院| 国产亚洲精品资源在线26u| 国产精品女同一区二区三区| 亚洲天堂a在线| 青青草国产精品亚洲专区无| 国产一区二区三区在线观看精品 | 51午夜精品国产| 久久先锋影音av鲁色资源| 国产精品久久久久久久午夜片| 亚洲黄色av一区| 久久精品国产亚洲高清剧情介绍| 高清久久久久久| 欧美日韩精品免费| 国产亚洲婷婷免费| 亚洲成人免费影院| 成人污污视频在线观看| 欧美亚洲综合另类| 久久久精品蜜桃| 一区二区三区日韩欧美| 精品一区二区日韩| 在线精品视频小说1| 久久综合狠狠综合久久激情 | 青青草国产精品97视觉盛宴| 国产精品99久久不卡二区| 一本久久综合亚洲鲁鲁五月天| 欧美色图天堂网| 国产精品九色蝌蚪自拍| 视频一区视频二区在线观看| 成人精品小蝌蚪|