glad fdtd
A few words : I am currently doing my diploma thesis which involves FDTD. Hence I had to learn this method from scratch in order to truly grasp it. Although many books on FDTD do exist some of which (like Sullivan's) explain some of the programming I found the available bibliography to lack some of the small details and kinks a person will face during programming.
This guide's goal is to explain some of these kinks the way I saw them and solved them for my software.
Initially this document was merely a guide to myself so I can remember what I did at every point. But after thinking long and hard I decided to throw it in the net and see if it catches.
People please note that this guide is a betabetabeta, meaning it is at an infant stage...However if enough people show interest in it,have suggestions or most importantly MISTAKES TO REPORT then I'll do my best to better this guide in order to help any person who will someday try to program FDTD
I am open to any suggestion/opinion/correction everybody...
Oh, one more thing. Since this "project" is truly a time-eater, if there isn't any response/support/morale boost then I don't see a reason to keep it up and I'll take it down.
Long Live FDTD
PS. If anyone knows of a similar/better guide please inform me...i just think there should be some sort of tutorial for those starting with FDTD so that when a person needs to program FDTD, he won't have to face all stupid problem from scratch
Come on people...I want opinions...
Don't worry about hurting my feelings, shoot
First thanks for attempting the impossible.
Some comments:
1) I think the layout is very good.
2) It may be an idea to split the guide into
- first steps (e.g. a simple simulation: e.g point source + two dielectrics)
- specialized topics:
* sources(point sources, plane waves, scattered field method,...)
* ABCs
* modeling materials (dispersive etc.)
* different kind of grids
* different types of FDTD: ADI-FDTD/BOR-FDTD/(countless versions of reduced numerical dispersion FDTDs
...
Since no one in his/her right mid would attempt all of 2 I would suggest that after the first steps guide
you concentrate on one topic and leave the other topics to other volunteers. (An FDTD-wiki would be a good idea but quite a bit of work. It would make adding information easier though)
As for your materials modeling you are using one form of stair casing. Other methods use averages of
the properties in a cube centered at the point you are updating (usually of the same size as the Yee-cells)
, averaging along the boundary lines of the Yee cells etc.
Anyway, I appreciate your efforts.
Hi all,
I was away for a few days. However I'm back now.
iyami thank you for your reply. It was insightful and helpful. Glad to see some people do appreciate the trouble...
However I am only learning FDTD myself hence I am not familiar with some of the topics you mentioned yourself.
The idea was to share the knowledge i've gained so far...If you can however supply guide parts yourself or point me in a right direction I could make this guide more complete and helpful...
Once more thnx
This is a great start. You are quite talented. Please keep it up!
-Tip
Time is the problem.
I have been thinking off and on about a website where detailed explanations and code
(e.g in python) is available. Most likely in form of a wiki. I am not happy with any of the
books available since all of them hide (or at least fail to discuss) problems you have to
face when implementing various types of FDTD.
There are even problems about how to best model material interfaces in 1d-FDTD with
relatively coarse grids.
If someone would set up a wiki I would not mind putting some effort into it but cannot
promise any large chunks of prose. Checking and adding details here and there as well
as some sample code should be possible.
Again, I do not have enough time to set up (or design) such a web site but would try
to help as much as time permits.
Perhaps you could even start such a wiki here but I do not know whom to contact to
find out if such a thing is possible.
I will keep checking this thread and if possible give your more detailed comments on your
guide while it is evolving.
Well you're right. Time is of the essence and especially now I am nearing the exams and I haven't got the time for such a project.
I've snooped around for a few minutes and found that making a wiki isn't that difficult especially using Wikispaces where it is practically of trivial difficulty.
I'll start such a wiki but I don't know how long it will take or if I can handle this alone (after all I am an FDTD newbie)..
Well I'll keep you posted on any changes and if you're interested i'll add you to the wiki as a member so you'll be able to make changes and additions...
please do so
Well it is official people.
Instead of a .doc or .pdf guide I'm am going to start a wiki for the purpose of teaching FDTD programming.
This way anyone can easily access this knowledge and contribute on their own. For this idea I have to thank iyami.
The wiki is still at a nothing stage but I am going to upload all FDTD guides or documents I have uploaded here including the guide and the material I have uploaded concerning other FDTD topics...
Anyone who wants to contribute in this project can do so...
I'll be back with news on the wiki.
I added a bit to one of your pages. Is there a place where we can discuss what needs to be done or how we should proceed? For example I think one page which explains all the abbreviations may be a good idea. Also an index of the public domain/open source code available (with links or copies).
People people...Seeing that this guide got quite a few comments it becomes obvious that it is worth the trouble...
However I haven't got the time right now to write more so ...
THIS GUIDE WILL BE CONTINUED AS A FDTD WIKI
Anyone is welcome to add his/her knowledge to this wiki. So if you're interested visit here:
http://fdtd.wikispaces.com/
This guide is all ready up but no more than that...So if you feel like contributing to the FDTD community join up...If you really want to do this then contact me and I can make you a Wiki Organizer allowing you full access to the wiki
Whenever I can make time I plan to add material about
1) pml and variations
2) grids (nonuniform etc, perhaps subgrids)
3) locally conformal methods
I plan to start with some basics about PML but it may have to wait
another month or so. I will not be upset at all if somebody beats me
to it.
Thanks for creating such a topic. I'm a newbie, but have already eaten some time on FDTD and have problems, that are explained in books not so clear to me. I mean, that translating them to some language makes some problems. So keep on doing it, appreciate!
don't mention it. However it is a tedious job and time is scarce. It has been more than 2 months I couldn't get my hands on it and make any additions. So if you would like to contribute to the wiki or know someone who does go ahead :
http://fdtd.wikispaces.com/
I'll tell that to my friends. Think I won't give more info than it's already mentioned on wikispace. If I manage to understand the topic of Scattered Field/Total Field in FDTD, then will write on it. So far can't find sufficcient explanation for that issue.
I am afraid I have bad news, the FDTD wiki is propably dead :(
It seems no one has stepped up to add anything to it for months and as for myself it turns out I haven't got the time to maintain such a thing...So while it was a good idea and would have helped people that try to use FDTD this project is off my hands.
I will not close or delete the wiki but for the time being I will not make any further contributions. If anyone is willing to undertake this project plz contact me and I will make you a full organizer in order to allow you to enrich the wiki...
Bad news for FDTDiers around the world :)
PS. Concerning the FDTD Programming Guide I may add context to it over time but for the time being it is not one of my priorities
That is a shame, but I understand. As long as the wiki is up and accepting contributions, however slowly it evolves with be very helpful.
thanks!
-Tip
Don't give up so early. It may take a while but don't forget that some of us have quite time
consuming jobs and/or kids. I said I am planning to put something up on PML if I find the
time. But family and work (I work for a small company which I would like to continue to exist)
come first. As a student it was much easier to find time. Now finding time often means
reducing sleeping hours which is rather counter productive in the long run.
In any case. What is the rush? FDTD will still exist next year.
Whenever you see an interesting explanation here ask the people to put it up on the wiki.
That may take a while but if you are patient you could get a usable wiki. You may not, but
giving up now is much too early in my opinion. (If nothing happens until 2010 I may start
agreeing with you.)
There is a dissertation by Rumpf Raymond, that deals with FDTD in a one chapter. Some things packed up, worth seeing:
https://www.edaboard.com/download.php?id=124081