Paramagnetismo

prev.gif (997 bytes)chapter.gif (1105 bytes)home.gif (1232 bytes)next.gif (1211 bytes)

Métodos de Montecarlo

Paramagnetismo

El código fuente


Paramagnetismo

El paramagnetismo es uno de los comportamientos posibles de los materiales magnéticos, otros son el diamagnetismo y el ferromagnetismo.

Un átomo o ion de momento magnético m en un campo magnético externo H tiene una energía

El momento magnético es proporcional al momento angular S, véase la figura adjunta, y se escribe

donde m0 es el magnetón de Bohr y g es un factor del orden de dos. Si H apunta en la dirección del eje Z, la energía del dipolo vale

FIG17_08.gif (1850 bytes)

En la descripción mecánico-cuántica la componente Z del momento angular pude tomar solamente 2S+1 valores que van desde m=-S a m=+S. Utilizando la descripción clásica esta restricción nos viene a decir que no todas las orientaciones del momento magnético son posibles, sino aquellas tales que su componente a lo largo de la dirección del campo tiene el valor indicado. Por ejemplo, si el ion Cr(3+) tiene un momento angular S=3/2, su momento magnético en unidades del magnetón de Bohr es m=gS=3. Las posibles orientaciones son -3/2, -1/2, 1/2 y 3/2, es decir 4. Por tanto, son cuatro posibles estados que corresponden a otros tantos niveles de energía que pueden ocupar los iones con una probabilidad que se determinó en el estudio de los niveles de energía.

Aplicaremos la fórmula de la estadística clásica a 2S+1 niveles discretos. Así, la probabilidad de que un ion tenga una energía Em o bien, que la componente Z de su momento magnético (en unidades del magnetón de Bohr) valga gm es

La constante de proporcionalidad se determina teniendo en cuenta todos los posibles estados de los componentes del sistema magnético. Luego,

La componente del momento magnético medio en la dirección del campo magnético vale:

La función B(u) se denomina función de Brillouin y es equivalente a la función de Langevin para los dipolos eléctricos

Podemos considerar dos situaciones extremas:

El momento magnético medio <mz> y por tanto, la imanación M=N<mz> es una función lineal del cociente campo/temperatura, a esta fórmula se le conoce como ley de Curie.

En la aplicación del método de Montecarlo hemos de transformar la variable aleatoria con distribución de probabilidad dada P(m), a partir de los valores de una variable aleatoria uniformemente distribuida en el intervalo [0, 1), según se esquematiza en el apartado variable aleatoria discreta. Se obtendrá el resultado m, es decir, una partícula del sistema estará en el nivel de energía Em, si al sortear un número aleatorio g uniformemente distribuido en el intervalo [0, 1), se cumple la condición (1)

 

La clase que describe el sistema físico

La definición de la clase Paramagnetico es similar a la definición de la clase Niveles que vimos en la página anterior. Sus miembros dato son el momento magnético mu del material en unidades del magnetón de Bohr, un número impar (1, 3, 5 o 7) dependiendo del tipo de ion paramagnético, un array p donde se guardan las probabilidades acumuladas para efectuar el sorteo de la variable aleatoria discreta, y el número de partículas del sistema nParticulas. La constante COEFICIENTE guarda el cociente ente el magnetón de Bohr y la constante de Boltzmann.

El constructor recibe como datos, el número de partículas del sistema y el momento magnético en unidades del magnetón de Bohr, y crea el array p que guarda las probabilidades. Por ejemplo, si el momento magnético es 3 tendrá que crear un array de 4 elementos ya que hay 2*3/2+1 posibles orientaciones del momento angular, y por tanto, cuatro posibles estados o niveles donde pueden situarse los iones

public class Paramagnetico {
    private int mu;         	//momento magnético en unidades de Bohr
    private double[] p;  	//distribución de probabilidades de ocupación
    public int nParticulas;
//números aleatorios
    private Random rnd=new Random();
    private static final double COEFICIENTE=9.2732e-24/1.3805e-23;     //Magnetón de Bohr/cte de Boltzmann

    public Paramagnetico(int nParticulas, int momento) {
        this.nParticulas=nParticulas;
        mu=momento;
        p=new double[mu+1];
    }
//funciones miembro ...
}    

La función miembro probabilidades, calcula las probabilidades pi, de acuerdo con las fórmulas descritas en la la clase Niveles de la página anterior, y las probabilidades acumuladas, guandándolas en cada uno de los elementos del array p.

    private void probabilidades(double campo, double temperatura){
        for(int i=0; i<=mu; i++){
            p[i]=Math.exp(COEFICIENTE*(2*i-mu)*campo/temperatura);
        }
//acumulada
        for(int i=1; i<=mu; i++){
            p[i]+=p[i-1];
        }
//normalizar
        for(int i=0; i<=mu; i++){
            p[i]/=p[mu];
        }
    }

La función miembro sorteo determina el estado de cada uno de los iones, de acuerdo con el procedimiento descrito en el apartado variable aleatoria discreta, o en la página anterior (función miembro distribucion), devolviendo el momento magnético de un ion particular.

    private int sorteo(){
        double aleatorio=rnd.nextDouble();
        int i=0;
        for(i=0; i<=mu; i++){
            if(aleatorio<p[i]){
                break;
            }
        }
        return (2*i-mu);    //momento magnético
    }

Por último, hemos de determinar el estado de una muestra significativa de iones para calcular el momento magnético medio en función del campo magnético y de la temperatura. Obtenemos el momento magnético de cada ión mediante la función miembro sorteo, por último dividimos el momento magnético total entre el número de iones de la muestra. La función miembro momentoMagneticoMedio nos devuelve el momento magnético medio de la muestra paramagnética en unidades del magnetón de Bohr. Como caso particular, consideramos aquél en el que la temperatura es cero, todos los momentos magnéticos apuntan en la dirección del campo.

    public double momentoMagneticoMedio(double campo, double temperatura){
        if(temperatura<=0.0){
            return mu;
        }
        probabilidades(campo, temperatura);
        int media=0;
        for(int i=0; i<nParticulas; i++){
            media+=sorteo();
        }
        return (double)media/nParticulas;
    }

Creamos un objeto param de la clase Paramagnetico y le pasamos al constructor el número de iones 1000 y el momento magnético de la muestra por ejemplo, el Cr (3+) que tiene un momento magnético de 3 unidades. Fijamos la intensidad del campo magnético en 2 Tesla, y analizamos el comportamiento de la muestra para diversas temperaturas.

        Paramagnetico param=new Paramagnetico(1000, 3);
        double campo=2.0; 		//Teslas
        System.out.println("temperatura \t m. magnético medio");
        for(double T=0.0; T<20; T+=1.0){
            System.out.println(" "+T+ " \t \t"+Math.floor(100*param.momentoMagneticoMedio(campo, T))/100);
        }

Ejercicio

En la siguiente tabla se proporcionan los momentos magnéticos en unidades de Bohr de varios iones paramagnéticos

Ion Momento magnético ( u. Bohr)
Gd (3+)

7

Fe (3+)

5

Cr (3+)

3

Co (3+)

1

 

El código fuente

disco.gif (1035 bytes) Paramagnetico.javaParamagneticoApp.java