资源简介
电磁波FDTD(时间域有限差分)正演计算代码,C语言源代码
代码片段和文件信息
#include“stdio.h“
#include“math.h“
#include“malloc.h“
#define c 3e8
#define dt 0.1
/**************** TM wave ****************/
/******* CA=0.1 CB=0.1 CP=0.1 CQ=0.1***********/
int main()
{
printf(“please input compute times:/n“);
const float X_0 = -100 X_1 = 100 Y_0 = -100 Y_1 = 100;
const float dx = 5 dy = 5;
int i jnk;
float M;
M = (c*dt - sqrt(dx*dx + dy * dy)) / (c*dt + sqrt(dx*dx + dy * dy));
scanf(“%d“ &n);
float *N_Hx = (float *)malloc(sizeof(float)*40*40);
float *N_Hy = (float *)malloc(sizeof(float) * 40*40);
float *N_Ez = (float *)malloc(sizeof(float) * 41*41);
float *O_Hx = (float *)malloc(sizeof(float) * 40 * 40);
float *O_Hy = (float *)malloc(sizeof(float) * 40 * 40);
float *O_Ez = (float *)malloc(sizeof(float) * 41 * 41);
float *n_1Ez = (float *)malloc(sizeof(float) * 39 * 8);
for (i = 0; i < 40 * 40; i++)
{
*(O_Hx + i) = 0;
*(O_Hy + i) = 0;
*(O_Ez + i) = 0;
}
for (i = 0; i < 41+40; i++)
{
*(O_Ez + i + 40 * 40) = 0;
}
for (i = 0; i < 39 * 8; i++)
{
*(n_1Ez + i) = 0;
}
/*************** (00) as sin(0.001pit) *****************/
for (k = 1; k <= n; k++)
{
for (i = 1; i < 40; i++)
for (j = 1; j < 40; j++)
{
*(N_Ez + i * 41 + j) = *(O_Ez + i * 41 + j)*0.1 + 0.1*((*(O_Hy + i * 40 + j ) - *(O_Hy + i * 40 + j-1)) / dx - (*(O_Hx + (i) * 40 + j-1) - *(O_Hy + (i-1) * 40 + j-1)) / dy);
}
*(N_Ez) = *(O_Ez+42)+M * (*(N_Ez+42)-*(O_Ez));
*(N_Ez + 40) = *(O_Ez + 41+39) + M * (*(N_Ez + 41+39) - *(O_Ez +40));
*(N_Ez + 41*40) = *(O_Ez + 41*39+1) + M * (*(N_Ez + 41*39+1) - *(O_Ez + 41*40));
*(N_Ez + 41*41-1) = *(O_Ez + 41*40-2) + M * (*(N_Ez + 41*40-2) - *(O_Ez + 41*41-1));
for (i = 0; i < 39; i++)
{
*(N_Ez + i + 1) = -*(n_1Ez + i + 39) + (c*dt - dx) / (c*dt + dx)*(*(N_Ez + i + 41 + 1) + *(n_1Ez + i)) + 2 * dx / (c*dt + dx)*(*(O_Ez + i + 1) + *(O_Ez + i + 1 + 41)) + dx * c*dt*c*dt / (2 * dy*dy*(c*dt + dx))*((*(O_Ez + i) - 2 * (*(O_Ez + i + 1)) + *(O_Ez + i + 2)) + *(O_Ez + i + 41) - 2 * (*(O_Ez + i + 1 + 41)) + *(O_Ez + i + 2 + 41));
*(N_Ez + i + 1+41*40) = -*(n_1Ez + i + 39*3)
- 上一篇:UKF C++版本
- 下一篇:处理机调度的模拟实现_C语言
相关资源
- 处理机调度的模拟实现_C语言
- C语言模拟ATM机的编写程序
- 《C语言程序开发范例宝典》光盘源码
- 51单片机直流电机控制C语言代码.rar
- C语言实现的bitmap位图代码分享
- 哈夫曼编码与解码(C语言实现)
- c语言实现linux shell下的cat命令
- 用C语言编制查询某班同学的平均成绩
- C++标准函数库.docx
- C语言实现Optimal、FIFO、LRU页面置换算
- 纯C语言+libalsa实现最简单录音程序
- C语言 可视化界面 亚马逊棋 AmazonChe
- 学院学生管理系统C语言 数据结构 文
- 中值滤波、均值滤波和高斯滤波代码
- 最小二乘法曲线拟合C语言可执行代码
- 字模提取程序汇编、C语言编码
- nurbs的c语言代码
- 计算机专业外文文献
- 哈夫曼编码译码器 C语言 数据结构课
- C图像读写源代码.zip
- 基于单片机的数字时钟设计与实现p
- 基于c51可调数字钟包括整点报时功能
- ADS1210读写函数C语言
- 用C语言设计并实现一个一元稀疏多项
- c语言实现设置ip、网关、子网掩码
- HZK16 C语言 字库
- CRC32算法(FPGA和C语言)
- 51单片机实现CRC校验
- C语言程序改错题库
- C语言 动画小程序
评论
共有 条评论