POV-Ray : Newsgroups : povray.advanced-users : quantum physics Server Time
1 Nov 2024 19:17:12 EDT (-0400)
  quantum physics (Message 1 to 7 of 7)  
From: Paul Jones
Subject: quantum physics
Date: 12 Dec 2001 09:52:34
Message: <3c176f32@news.povray.org>
Hello,

Does anybody know how to create an isosurface for the atomic orbitals?
Specifically the s, p and d (I can't find the equations for the f
orbitals....). I have forgotten most of my quatum physics and even more math
(calc and diffeq).

Any guidance or scene files would be much appreciated  :-)

-thanks a lot


paul


Post a reply to this message

From: Mike Williams
Subject: Re: quantum physics
Date: 12 Dec 2001 22:17:05
Message: <rQKdrDA3X7F8Ew01@econym.demon.co.uk>
Wasn't it Paul Jones who wrote:
>Hello,
>
>Does anybody know how to create an isosurface for the atomic orbitals?
>Specifically the s, p and d (I can't find the equations for the f
>orbitals....). I have forgotten most of my quatum physics and even more math
>(calc and diffeq).
>
>Any guidance or scene files would be much appreciated  :-)

s orbitals are easy, they're just spheres.


One of the d orbitals is available as the f_quantum(x,y,z,0) function.

#include "functions.inc"
isosurface {
  function {f_quantum(x,y,z,0)}
        max_gradient 2
        contained_by {sphere {0,8}}
        pigment {rgb 1}
}

In the old MegaPOV syntax it's {"func_11" <0>} .


I don't know about the rest.

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: JRG
Subject: Re: quantum physics
Date: 13 Dec 2001 13:11:22
Message: <3c18ef4a@news.povray.org>
Some properly rotated lemniscates should *fake* p orbitals quite well. BTW
you can always try with some parametric equations (not that easy):
2px is given by the following parametric function (I'm using polar
coordinates):
1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))*sin(theta)*sen(ph
i)
where Z is the atomic number and a = 0.529 e-10 m.
2py:
1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))*cos(theta)
2pz:
1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))*sin(theta)*cos(ph
i)

The parametric equations are (obviously):
x = r*sin(theta)*sin(phi);
y = r*sin(theta)*cos(phi);
z = r*cos(theta);

Nothing that I would really try. Good luck.

--
Jonathan.


"Paul Jones" <pdj### [at] psuedu> ha scritto nel messaggio
news:3c176f32@news.povray.org...
> Hello,
>
> Does anybody know how to create an isosurface for the atomic orbitals?
> Specifically the s, p and d (I can't find the equations for the f
> orbitals....). I have forgotten most of my quatum physics and even more
math
> (calc and diffeq).
>
> Any guidance or scene files would be much appreciated  :-)
>
> -thanks a lot
>
>
> paul
>
>


Post a reply to this message

From: JRG
Subject: Re: quantum physics
Date: 13 Dec 2001 15:44:20
Message: <3c191324@news.povray.org>
"Mike Williams" <mik### [at] nospamplease> ha scritto nel messaggio
news:L7D### [at] econymdemoncouk...
> Those aren't parametric equations. They're straight forward polar
> equations.

They are parametric functions. Instead of having a F(x,y,z), with orbitals
is *easier* to work with polar coordinates ==> F(r,theta,phi)

> You haven't told us what "r" is.

Aw, come on. Don't you know polar coordinates? :P

> >The parametric equations are (obviously):
> >x = r*sin(theta)*sin(phi);
> >y = r*sin(theta)*cos(phi);
> >z = r*cos(theta);

> These are parametric equations, but they're just the parametric
> equations of a sphere, which doesn't help very much.

No. R is a parameter, just like theta and phi. It's not a fixed value. You
need those equations to convert polar coordinates to Cartesian coordinates.

> To convert that into a POV function we need to:-
>         Change the "pow"s into "^"s

Huh, doesn't pow() work with isos?

>         Change theta and pii into f_th(x,y,z) and f_ph(x,y,z)

Ok.

>         Think of a value for "r" (I chose 1.0)

Nope. R is the third polar coordinate, it can't be a fixed value.
You have a point in 3d space defined by three Cartesian coordinates <X,Y,Z>.
If you're using polar coordinates your point is known if you know its three
polar coordinates <r,theta,phi>.
r is the length of the vector <x,y,z>. theta is the angle between that
vector and the Z axis. phi is the angle between the projected vector on the
XY plane and the Y axis.

>         Assume that "sen" is a misprint for "sin"

Oops. No, it's just Italian.

--
Jonathan.


Post a reply to this message

From: Mike Williams
Subject: Re: quantum physics
Date: 13 Dec 2001 15:46:00
Message: <xal7ZAAFNRG8EwOc@econym.demon.co.uk>
Wasn't it JRG who wrote:
>Some properly rotated lemniscates should *fake* p orbitals quite well. BTW
>you can always try with some parametric equations (not that easy):
>2px is given by the following parametric function (I'm using polar
>coordinates):
>1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))*sin(theta)*sen(ph
>i)
>where Z is the atomic number and a = 0.529 e-10 m.
>2py:
>1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))*cos(theta)
>2pz:
>1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))*sin(theta)*cos(ph
>i)
>
>The parametric equations are (obviously):
>x = r*sin(theta)*sin(phi);
>y = r*sin(theta)*cos(phi);
>z = r*cos(theta);
>
>Nothing that I would really try. Good luck.

Oops. Please Ignore my previous post. For some reason I'd thought that
"r" was some constant, but it's the third polar co-ordinate.

So converting 
 1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))*sin(theta)
 *sen(phi)
into POV code gives us 

#declare  F = function {1/4 
                        * (1/(2*pi))^(1/2)
                        * (Z/a)^(3/2) 
                        * (Z*f_r(x,y,z)/a) 
                        * exp(-Z*f_r(x,y,z)/(2*a))
                        * sin(f_th(x,y,z))
                        * sin(f_ph(x,y,z))
                        }

This has a lobe in the positive x direction when the threshold is
positive, and a lobe in the negative x direction when the threshold is
negative. To render both lobes at once, I've taken the square of the
function, so that both lobes are rendered with positive threshold.

The 2py function has four lobes, and the 2pz has one lobe.


#include "functions.inc"

sky_sphere { pigment {
    function{abs(y)}
    color_map { [0.0 color blue 0.6] [1.0 color rgb 1] } 
  }
}

light_source {<100,400,-100> colour rgb 1}

#declare R = 1.5;
camera { location  <0, 0, -2*R> look_at <0, 0, 0>}

#declare Z=3;
#declare a=0.529;

//1/4*pow(1/(2*pi),1/2)*pow(Z/a,3/2)*(Z*r/a)*exp(-Z*r/(2*a))
//*sin(theta)*sen(phi)


#declare  F = function {1/4 
                        * (1/(2*pi))^(1/2)
                        * (Z/a)^(3/2) 
                        * (Z*f_r(x,y,z)/a) 
                        * exp(-Z*f_r(x,y,z)/(2*a))
                        * sin(f_th(x,y,z))
                        * sin(f_ph(x,y,z))
                        }


isosurface {
  function { F(x,y,z)^2 }
        //max_gradient 3500
        threshold 0.1
        contained_by{sphere{0,R}} open
        pigment {rgb .9}
        finish {phong 0.5 phong_size 10}
}

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: JRG
Subject: Re: quantum physics
Date: 16 Dec 2001 07:12:17
Message: <3c1c8fa1@news.povray.org>
Substitute f_ph with f_th and viceversa to get the right shapes (latitude
and longitude are inverted in POV-Ray, where y is up). Every orbital should
consist of two lobes.

--
Jonathan.


Post a reply to this message

From: Jim Kress
Subject: Re: quantum physics
Date: 18 Dec 2001 01:50:03
Message: <3c1ee71b$1@news.povray.org>
To see real quantum physics isosurfaces, look here:

http://www.kressworks.com/Research/Quantum_Chemistry/Unimolecular_Decomposit
ion_Reactions/Amine_oxides/N_N_Dimethyl_N_Ethyl_Amine_Oxide/N_N_Dimethyl_N_E
thyl_Amine_Oxide.html

Cut and paste into your browser if the url breaks.

Jim


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.