日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

[C++调试笔记]网格划分grid_pic.cpp

發布時間:2025/3/15 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [C++调试笔记]网格划分grid_pic.cpp 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????

?

#include <stdio.h> #include <math.h> #include "define.h" /* *ptr_e,ptr_D,ptr_C3分別代表指向三種類型的指針* *dens[]代表三種粒子的密度*char_dens代表電荷密度 */ void grid_pic(particle* prt_e, particle* ptr_D, particle* ptr_C3, int* numb, double(*dens)[Nz_plas], double* char_dens) {int i;pic(prt_e, numb[0], qe, dens[0]);pic(ptr_D, numb[1], qi, dens[1]);pic(ptr_C3, numb[2], q_C3, dens[2]);for (i = 0; i < Nz_plas; i++)char_dens[i] = dens[0][i] + dens[1][i] + dens[2][i];for (i = 0; i < Nz_plas; i++){/* 網格點電荷密度->網格點數密度 */dens[0][i] /= qe; dens[1][i] /= qi;dens[2][i] /= q_C3;/* 最后一個網格的電子數密度 */if (i == Nz_plas - 1)printf("最后一個網格的電子數密度=%10.6e \n", dens[0][i]);}stime(); }/* 云分室法求解電荷密度 */ void pic(particle* ptr, int numb, double q, double* dens) {int i, ip;double l1, l2;double q_real, z;/* 每個網格點電荷密度重置為0 */for (i = 0; i < Nz_plas; i++)dens[i] = 0.0;/* 網格點電荷密度->網格點電荷量 */for (i = 0; i < numb; i++)//遍歷每個粒子{q_real = ptr[i].weig * q;//電荷量權重變換z = ptr[i].z;ip = (int)(z / dz_plas);//第i個粒子的位置l2 = z / dz_plas - ip; //左半網格l1 = 1.0 - l2; //右半網格dens[ip] += q_real * l1; //權重分配dens[ip + 1] += q_real * l2; //權重分配}/* 網格點電荷量->網格點電荷密度 */for (i = 1; i < Nz_plas - 1; i++) //遍歷2-Nz_plas個網格dens[i] /= dz_plas; //將網格點的電荷量平均到左右半個網格上dens[0] /= (0.5 * dz_plas); //首個網格點的電荷量平均到右半網格上dens[Nz_plas - 1] /= (0.5 * dz_plas); //最后一個網格點的電荷量平均到左半網格上 }

總結

以上是生活随笔為你收集整理的[C++调试笔记]网格划分grid_pic.cpp的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。