Algoritmo para simular modelo material inhomogeneo
Definición 
A diferencia del caso homogéneo la posición inicial de la partícula solo puede asumir un nodo especifico. Para un nodo inicial y dirección de propagación definida se puede generar un numero al azar entre 0 y 1 y comenzar a generar números de la serie
| $P_{ij}=\displaystyle\sum_{k=i}^j \mu_k e^{-|k-i|\mu_k}$ |
hasta sobrepasar el numero al azar. Al ocurrir esto se habrá llegado al nodo en que ocurrirá la colisión. Por ello el código debe tener un loop de la forma
```
var rand = Math.random(); // random number
var p = 0; // start sum
var k = i; // start position
var dir = 1; // direction
while(p < rand){
p = p + mu[k]*Math.exp(-Math.abs(k-i)*mu[k]);
k = k + dir;
}
// k is the result node
```
Para que este código pueda funcionar adecuadamente debe:
- definirse un rango en que mu tiene valores
- debe incluirse una protección por si la partícula abandona el rango en que se definió el arreglo mu.
ID:(9356, 0)
Simulador material inhomogeneo
Imagen 
Sobre la base de un sistema que se extiende desde un borde izquierdo
ID:(9357, 0)
Modelamiento con material inhomogeneo (1D)
Descripción 
Variables
Cálculos
Cálculos
Ecuaciones
(ID 9105)
Ejemplos
Hasta aqu hab amos supuesto que la probabilidad de interacci n era independiente de la posici n. Sin embargo, por lo general los sistemas no son homog neos y por ello es necesario considerar que las probabilidades dependen de la posici n.
Esto significa que en la probabilidad de colisionar el factor lambda
| $p(x)dx = \displaystyle\frac{1}{\lambda}e^{-x/\lambda}dx$ |
no se puede realizar en forma explicita. En este caso la probabilidad de impactar debe ser calculada en forma explicita y como los factores
| $P(x,x_0)=\displaystyle\int_{x_0}^x\displaystyle\frac{du}{\lambda(u)}e^{-(u-x_0)/\lambda(u)}$ |
donde
(ID 9102)
Para poder calcular la funci n probabilidad se debe discretizar el espacio definiendo una grilla con nodos o voxel que pueden estar a distancia fija o variar en funci n del material y/o geometr a. En el caso de que la grilla es regular se tiene que las posiciones de los nodos son
| $x_n=na$ |
(ID 9105)
Si las posiciones se discretizan la integral de la probabilidad
| $P(x,x_0)=\displaystyle\int_{x_0}^x\displaystyle\frac{du}{\lambda(u)}e^{-(u-x_0)/\lambda(u)}$ |
se requieren los valores de
| $P_{ij}=\displaystyle\sum_{k=i}^j \displaystyle\frac{a}{\lambda_k}e^{-(k-i)a/\lambda_k}$ |
(ID 9104)
Para simplificar el calculo se puede definir el factor
| $\mu_k=\displaystyle\frac{a}{\lambda_k}$ |
(ID 9354)
Con la probabilidad
| $\mu_k=\displaystyle\frac{a}{\lambda_k}$ |
la ecuaci n
| $P_{ij}=\displaystyle\sum_{k=i}^j \displaystyle\frac{a}{\lambda_k}e^{-(k-i)a/\lambda_k}$ |
se deja escribir como
| $P_{ij}=\displaystyle\sum_{k=i}^j \mu_k e^{-|k-i|\mu_k}$ |
en donde se agrego el valor absoluto para el caso de que la propagaci n es de un valor
(ID 9355)
A diferencia del caso homog neo la posici n inicial de la part cula solo puede asumir un nodo especifico. Para un nodo inicial y direcci n de propagaci n definida se puede generar un numero al azar entre 0 y 1 y comenzar a generar n meros de la serie
| $P_{ij}=\displaystyle\sum_{k=i}^j \mu_k e^{-|k-i|\mu_k}$ |
hasta sobrepasar el numero al azar. Al ocurrir esto se habr llegado al nodo en que ocurrir la colisi n. Por ello el c digo debe tener un loop de la forma
```
var rand = Math.random(); // random number
var p = 0; // start sum
var k = i; // start position
var dir = 1; // direction
while(p < rand){
p = p + mu[k]*Math.exp(-Math.abs(k-i)*mu[k]);
k = k + dir;
}
// k is the result node
```
Para que este c digo pueda funcionar adecuadamente debe:
- definirse un rango en que mu tiene valores
- debe incluirse una protecci n por si la part cula abandona el rango en que se defini el arreglo mu.
(ID 9356)
Sobre la base de un sistema que se extiende desde un borde izquierdo
(ID 9357)
ID:(1130, 0)
