MonteCarlo neutron transport

  • Thread starter Milentije
  • Start date
48
0

Main Question or Discussion Point

Can anyone hepl me with this?I need some web resource,to start learning from scratch.
 

Answers and Replies

Astronuc
Staff Emeritus
Science Advisor
18,543
1,684
Try these to get started.

Introduction to Numerical Simulations in Radiation Transport
http://iron.nuc.berkeley.edu/%7Ebdwirth/Public/NE155/ne155.html [Broken]
Notes in pdf
http://iron.nuc.berkeley.edu/%7Ebdwirth/Public/NE155/schedule.html [Broken]
Several files are large.

Brief history of MCNP - Monte Carlo Neutron-Photon
http://library.lanl.gov/cgi-bin/getfile?00418730.pdf

LANL paper - A Monte Carlo Code for Particle Transport
http://www.fas.org/sgp/othergov/doe/lanl/pubs/00326727.pdf

Another historical perspective on MC -
http://library.lanl.gov/cgi-bin/getfile?00326867.pdf

MCNP site
http://mcnp-green.lanl.gov/index.html
http://mcnp-green.lanl.gov/v_r_refs.html
 
Last edited by a moderator:
Morbius
Science Advisor
Dearly Missed
1,125
6
Can anyone hepl me with this?I need some web resource,to start learning from scratch.
Milentije,

A very good book on Monte Carlo is by Spanier and Gelbard;
"Monte Carlo Principles and Neutron Transport Problems"

There's also another short text by Carter and Cashwell.

Dr. Gregory Greenman
Physicist
 
48
0
Thanks Astronuc and Morbius,I have found the recources very usefull.
 
Hello friends, I am doing simple mc simulation for neutron transport.
The principle of random simulation is L=-(1/C)*ln(u), where u is a random number from the uniform distribution [0,1), and c is the total cross section (absorbed + scattered). Could you explain me what is the meaning of u, and how can I use it in my simulation?.
I wrote a simple code in c, which I have to parallel it in MPI:

#include "mpi.h"
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <stdbool.h>
#define PI 3.14159265
int main (int argc, char *argv[])
{
/* Simple "srand()" seed: just use "time()" */
unsigned int iseed = (unsigned int)time(NULL);
srand (iseed);

/*c = mean distance between neutron/atom interaction*/
/*cs = scattering component of c*/
/*cc = absorbing component of c*/
float c,cs,cc; /*mean distance between neutron/atom interaction*/
double h,l; /*thickness of the slab and length travelled*/
double u; /*uniform random number*/
double dd,d; /*direction of the neutron [0,pi]*/
double x; /*position particle in the plate*/
int n=10; /*number of samples*/
int bounce; /*boolean value*/
int i,r,b,t;
r=0; b=0; t=0; /*reflected,absorbed and transmited neutrons*/
/*generates randon values between 0 and 1*/
/*dd = (float) rand()/RAND_MAX;*/
for (i = 1; i <= n; i++)
{
x = 0.0;
d = 0.0;
dd = 0.0;
c = 5.5545;
cc = 0.0035;
cs = 5.551;
h = 10.00;
bounce = 1;
do {
dd = (float) rand()/RAND_MAX;
d=PI*dd;
/*generates randon values between 0 and 1*/
u = (float)rand()/RAND_MAX;
l = -(1/c)*log(u);
/*lenght travelled by the particle*/
x = x + l*cos(d);
//printf("value of x=%2.4f\n",x);
if (x < 0.0) /*reflected*/
{
r = r + 1;
bounce = 0;
// printf("reflec r= %d\n",r);
}
else {
if (x >= h) /*transmited*/
{
t = t+1;
bounce = 0;
// printf("trans t=%d\n",t);
}
else{
if (u < cc/c)
{
b = b+1;
bounce = 0;
// printf("absorbed b=%d\n",b);
}
else d = u * PI;
}
}/*end first else*/
} while (bounce = 1);
} /*end for*/
printf("Particles reflected = %d\n",dd);
printf("Particles absorbed = %d\n",b);
printf("Particles transmittedd = %d\n",b);
}/*end main*/


Please any help is more than welcome
 

Related Threads for: MonteCarlo neutron transport

Replies
5
Views
10K
Replies
1
Views
4K
  • Last Post
Replies
1
Views
681
  • Last Post
Replies
1
Views
3K
  • Last Post
Replies
15
Views
3K
  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
3
Views
2K
Top