Developing a simple program to solve the diffusion equation

In summary, if you want to solve the diffusion equation in parallel, you might need a Krylov-subspace solver.
  • #36
quetzalcoatl9 said:
See? That wasn't so bad right? You see, the seminal work makes use of the stochastic method, via the Metropolis acceptance function, of sampling an ensemble of configurations. This is how everyone else in the world knows the term "Monte Carlo".

So I have Metroplis and Teller on my side here - are you so arrogant as to say them wrong too?
quetzal,

NOT AT ALL You certainly DO NOT have Metropolis and Teller on your side.

What you have obfuscated here is what type of "Monte Carlo" technique one is talking about.

We are not talking about Monte Carlo methods in general. We are talking about a particular application
of Monte Carlo to solving the neutron transport / diffusion equations and your ERRONEOUS response
that that particular application parallelized trivially.

One can use a "Monte Carlo" technique to do integrals by sampling an integrand. That type of
"Monte Carlo" does parallelize trivially because all one has to do is sample from a function; and all
those calculations are independent, and hence parallelize trivially.

However, your statement in Post #6 to a previous poster was:
the real power of parallelization comes with higher dimensional diffusion. in which case, a more efficient way of calculating diffusion is through Monte Carlo integration (since the error scales as 1/sqrt(N) rather than with the dimensionality), which indeed parallelizes trivially. for a 1D case i can't see any reason why you would parallelize.

In the above, you are advocating using a Monte Carlo technique to solve the neutron diffusion equation.

It's the Monte Carlo technique for solving neutron transport or neutron diffusion that does not
parallelize trivially; for the reasons I cited at length above.

In Post #19, you chastise me for limiting my discussion to the neutron transport problem:
It sounds like you are focusing on a very particular type of problem - neutron diffusion in some fissile material. However, keep in mind that if one was, for example, solving for a statistical mechanical observable, then doing the trivial parallelization where each processor handles a separate (indepedent) sample is appropriate

For Heavens sake, of course I was "focussing a very partucular type of problem - neutron diffusion";
because that's what we were talking about back in your Post #6.

I agree that one can trivially parallelize a Monte Carlo technique for sampling a statistical mechanical
distribution - but that doesn't solve the neutron diffusion problem - which is what you claimed could
be done trivially in Post #6.

So - it's a "Catch-22". Either the "Monte Carlo" method you recommended in Post #6 was a trivially
parallelized statistical mechanical sampling method; in which case you are WRONG in Post #6
because statistical mechanical sampling doesn't solve the neutron diffusion equation.

Or, in case you meant "Monte Carlo" to mean a method of solving the integral-differential neutron
transport and / or diffusion equations; in which case you are WRONG again because such
algorithms don't trivially parallelize.

Either way - you have OBFUSCATED what a "Monte Carlo" technique is, and how it is used.

Dr. Gregory Greenman
Physicist
 
Last edited:
<h2>1. What is the diffusion equation?</h2><p>The diffusion equation is a mathematical model that describes the movement of particles or substances from areas of high concentration to areas of low concentration. It is commonly used in physics, chemistry, and biology to study the process of diffusion.</p><h2>2. Why is it important to develop a program to solve the diffusion equation?</h2><p>Developing a program to solve the diffusion equation allows for a more efficient and accurate way to analyze and predict diffusion processes. It also allows for the exploration of different scenarios and variables, which can help in understanding the underlying principles of diffusion.</p><h2>3. What are the key components of a simple program to solve the diffusion equation?</h2><p>The key components of a simple program to solve the diffusion equation include defining the initial conditions, setting the boundary conditions, discretizing the equation, and using numerical methods to solve for the diffusion over time. It also requires knowledge of programming languages and mathematical concepts.</p><h2>4. How can a simple program to solve the diffusion equation be applied in real-world situations?</h2><p>A simple program to solve the diffusion equation can be applied in various fields such as material science, environmental science, and biomedical engineering. It can be used to study the diffusion of pollutants in the atmosphere, the diffusion of drugs in the body, and the diffusion of heat in materials, among others.</p><h2>5. Are there any limitations to using a simple program to solve the diffusion equation?</h2><p>While a simple program can provide useful insights into diffusion processes, it may not be able to accurately model complex scenarios or account for all variables. It also relies on assumptions and simplifications, which may not always reflect real-world situations. Therefore, it is important to carefully consider the limitations and assumptions of the program when interpreting the results.</p>

Related to Developing a simple program to solve the diffusion equation

1. What is the diffusion equation?

The diffusion equation is a mathematical model that describes the movement of particles or substances from areas of high concentration to areas of low concentration. It is commonly used in physics, chemistry, and biology to study the process of diffusion.

2. Why is it important to develop a program to solve the diffusion equation?

Developing a program to solve the diffusion equation allows for a more efficient and accurate way to analyze and predict diffusion processes. It also allows for the exploration of different scenarios and variables, which can help in understanding the underlying principles of diffusion.

3. What are the key components of a simple program to solve the diffusion equation?

The key components of a simple program to solve the diffusion equation include defining the initial conditions, setting the boundary conditions, discretizing the equation, and using numerical methods to solve for the diffusion over time. It also requires knowledge of programming languages and mathematical concepts.

4. How can a simple program to solve the diffusion equation be applied in real-world situations?

A simple program to solve the diffusion equation can be applied in various fields such as material science, environmental science, and biomedical engineering. It can be used to study the diffusion of pollutants in the atmosphere, the diffusion of drugs in the body, and the diffusion of heat in materials, among others.

5. Are there any limitations to using a simple program to solve the diffusion equation?

While a simple program can provide useful insights into diffusion processes, it may not be able to accurately model complex scenarios or account for all variables. It also relies on assumptions and simplifications, which may not always reflect real-world situations. Therefore, it is important to carefully consider the limitations and assumptions of the program when interpreting the results.

Similar threads

Replies
0
Views
487
  • Advanced Physics Homework Help
Replies
0
Views
226
Replies
8
Views
2K
Replies
2
Views
3K
Replies
2
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
2
Replies
41
Views
8K
  • Biology and Chemistry Homework Help
Replies
4
Views
1K
  • Programming and Computer Science
Replies
6
Views
1K
Replies
5
Views
5K
  • Materials and Chemical Engineering
Replies
30
Views
3K
Back
Top