Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (429)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (468)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  2d wave equation & boundary reflections  (Read 2860 times)
0 Members and 1 Guest are viewing this topic.
Offline monty_hall

Senior Newbie





« Posted 2009-10-12 15:27:12 »

I've read some articles on 2d wave equation simulation using the finite difference method.  I was wondering, how are obstructions handled, like slits, walls, etc.  Anybody know of some texts on this matter?

Monty
Offline dishmoth
« Reply #1 - Posted 2009-10-12 19:57:53 »

I don't have any links for this, but the basic idea is as follows.

Your data is defined on a regular grid of points, p(i,j) say, but some of the points in that grid are inside obstructions or are part of the boundary.

You want to advance the value of p(i,j) to get a new value, p'(i,j) say.  The result depends on a 'stencil' of points which will differ for different algorithms, but typically are the following: p(i,j), p(i+1,j), p(i-1,j), p(i,j+1), p(i,j-1).  The problem is that some of those points may lie inside the boundaries/obstacles, which means you don't have data for them.

The trick is to fill in the data at the unknown points by 'reflecting' the data at the known points.  For example, if you've got data for point p(i,j) but point p(i+1,j) is inside the boundary, then you construct the data at p(i+1,j) by imagining that there's a mirror midway between it and p(i,j).  If your data represents something like density or wave height then you'd just set p(i+1,j) equal to p(i,j).  If it represents a vector quantity such as velocity then you'd need to negate one of its components (so that the velocity in that component is zero exactly at the mirror).

(This approach is cheating a little in that it assumes that the boundaries/obstacles are always aligned with the x- or y-axes, so that if you drew them they would look pixelated.  For non-academic applications that's probably a sensible simplification though.)

I suspect that that wasn't a great explanation.  Hopefully someone will be able to provide a link to a better one!  Roll Eyes

Simon

Offline Hansdampf

Senior Member


Projects: 3


too offending?


« Reply #2 - Posted 2009-10-12 21:25:21 »

http://www.falstad.com/mathphysics.html

the first applet comes with source (code).

lots of sillystupid games: http://www.emaggame.com
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (81 views)
2014-04-15 18:08:23

BurntPizza (73 views)
2014-04-15 03:46:01

UprightPath (84 views)
2014-04-14 17:39:50

UprightPath (67 views)
2014-04-14 17:35:47

Porlus (84 views)
2014-04-14 15:48:38

tom_mai78101 (107 views)
2014-04-10 04:04:31

BurntPizza (167 views)
2014-04-08 23:06:04

tom_mai78101 (263 views)
2014-04-05 13:34:39

trollwarrior1 (214 views)
2014-04-04 12:06:45

CJLetsGame (223 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!