Physics Forums

## Advection equation and Crank-Nicolson

Hi, I want to numerically model the advection equation using the Crank-Nicolson scheme. Yes, I know that it is highly oscillatory but that is the point of the exercise as I want to highlight this. The problem I'm having is how do I apply the BC for grid point N in the scheme. The advection equation only needs one boundary condition at point 0 in the domain, but becuase of the centred space disretisation the scheme requires an artificial boundary condition at the other end. The basic equation is

$$\-\frac{\sigma}{4}f_{i-1}^{n+1}+f_{i}^{n+1}+\frac{\sigma}{4}f_{i+1}^{n+1}=\frac{\sigma}{4}f_{i-1}^{n}+f_{i}^{n}-\frac{\sigma}{4}f_{i+1}^{n}$$

So say I want the value at N+1 to be the same as N, that requires

$$\left.\frac{\partial f}{\partial x}\right|_{N}=\frac{f_{N+1}^{n}-f_{N-1}^{n}}{2\triangle x}=0$$

and hence

$$f_{N+1}=f_{N-1}$$

So if we sub that into the main scheme we get

$$f_{N}^{n+1}=f_{N}^{n}$$

So according to this the final grid point always remains at the initial condictions, which is clearly wrong. Does anyone know what is wrong with my assumptions?

Thanks for any info.

PhysOrg.com  science news on PhysOrg.com  >> Front-row seats to climate change>> Attacking MRSA with metals from antibacterial clays>> New formula invented for microscope viewing, substitutes for federally controlled drug

Lots of ways, some better/easier than others.  You can try making your domain a cell too large at every boundary where you need to enforce a BC at the cell edge, then interpolate.  You can also make the domain periodic, but then you get periodic solutions (which may or may not be acceptable).

Quote by olivermsun 					 				 				Lots of ways, some better/easier than others.  You can try making your domain a cell too large at every boundary where you need to enforce a BC at the cell edge, then interpolate.  You can also make the domain periodic, but then you get periodic solutions (which may or may not be acceptable).
I'm not quite sure how you implement the method you suggested. If you extend your domain, aren't you still going to have the same problem except with a larger domain? The solution still has to be in the form of a tridiagonal matrix.

Unfortunately I can't use a periodic domain as I want to see the solution at the final time compared with the initial time.

Thread Tools

|                                                            |                               |         |
|------------------------------------------------------------|-------------------------------|---------|
| Similar Threads for: Advection equation and Crank-Nicolson |                               |         |
| Thread                                                     | Forum                         | Replies |
|                                                            | Differential Equations        | 4       |
|                                                            | Introductory Physics Homework | 8       |
|                                                            | Calculus & Beyond Homework    | 0       |
|                                                            | Math & Science Software       | 0       |
|                                                            | Differential Equations        | 3       |
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 4, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9236534237861633, "perplexity_flag": "middle"}