微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > 电磁仿真讨论 > cpml fdtd

cpml fdtd

时间:03-30 整理:3721RD 点击:
Hi

A 3D FDTD code with CPML boundary conditions is attached.
It is implemented in C language and it simulates the radiation from a dipole (Near field only).
I have added proper comments in the code so that anybody who wants to modify can do the same without much trouble.

This code is actually a modified version of the Fortran code provided with Taflove's book, 3rd edition (which is available in the forum).
A Matlab file is also attached, which can be used for visualizing the fields in animated format.
Hope that this may be useful.

Best Regards
Jithesh

Thanks, been having trouble with this.

Silly question maybe but what's a Cpml as opposed to a PML?

CPML is Convolutional PML.
It is more accurate than Berenger's PML.
Moreover the memory requirement for CPML is less compared to Berenger's PML
For more details you can refer Taflove's Book (Second or third edition)
Best Regards
Jithesh

Hi
I'm not familiar with C, how should I run this code. I tried to compile and run it with Dev-C++ 4.9.9.2, but there is a problem. What is this error mean: "Source file not compiled"

hii
can u tell me how can i calculate the field distribution with in the 3D strucutre using CPML boundary with 3D FDTD method.........i want to calculate the field disrtribution in the dielectric slab due to antenna in direct contact with the slab.... i hv the matlab code for antenna but i don't understand how can i calculate the field distrubution using FDTD in dielctric slab.............

Hi,
First you must Compile the code, in Dev-C you can press F9 to Compile&Run.

hi dear
very thanks

Thanx a lot

Thanks so much. I have been looking for CPML implementation so long.

Hi...I have a question about the code, specifically In the section where the PML parameters are intialized: to initialize, for example ce_x_1, there is an
if ((sige_x_PML_1[i]==0.0)&&(alphae_x_PML_1[i]==0.0)&&(i == nxPML_1-1)){

ce_x_1[i]=0.0;
} else {
ce_x_1[i]=sige_x_PML_1[i]*(be_x_1[i] - (sige_x_PML_1[i] + kappae_x_PML_1[i] * alphae_x_PML_1[i])/ kappae_x_PML_1[i];
}

The question is why is the "if" condition needed. Is not enough with the "else" part, without any conditional?

Thanks

Convolutional PML is not better than Brenger's PML, there are papers discussed about this. Convolutional PML is developed by S. D. Gedney and Roden Allen, the major part of this work is to understand the PML as a Uniaxial absorbing media rather than split field stretched media, This understanding makes more sense when defining PML's parameters and the implementation is relatively more straight forward. However, the performance is actually the same.

Newer PMLs are actually called CFS-PML (Complex Frequency Shifted PML), Such PML absorbs evanescent waves.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top