[MMTK] (no subject)

konrad.hinsen@laposte.net konrad.hinsen at laposte.net
Tue Feb 21 09:50:50 CET 2006

On 21.02.2006, at 02:04, dpy99 wrote:

> I am now being frustrated to implement the ¡°Class ParticleScalar¡±  
> and the
> ¡°Class AtomicScalarField (system. grid_size, values)¡±.
> The problem is I don¡¯t know how to give the proper  
> ParticleProperties to the
> parameter ¡°value¡±, for example, want to make the energy (mass) as  
> the scalar value, and then how to initial the object  
> ParticleScalar, and implement the AtomicScaleField.

1) Getting your data into ParticleScalar objects

There are basically two approaches:
a) Calculations using built-in ParticleProperties objects that result  
in a ParticleScalar object
b) Creation of a ParticleScalar object whose values are then defined  
in a loop over all atoms.

Examples for a):

	masses = universe.masses()  # yields a ParticleScalar directly

	charges = universe.charges()  # requires a force field

	v = universe.velocities()
	m = universe.masses()
	kinetic_energy = 0.5*m*(v*v)

Example for b):

	# calculate distance from the center of the universe
	cm = universe.centerOfMass()
	d = ParticleScalar(universe)
	for atom in universe.atomList():
		d[atom] = (atom.position()-cm).length()

2) Constructing the scalar field

This is always the same, you just give the ParticleScalar as the last  

Example: mass density

	mass_density = AtomicScalarField(universe, 0.5, universe.masses())

Konrad Hinsen
Laboratoire Leon Brillouin (CEA-CNRS), CEA Saclay,
91191 Gif-sur-Yvette Cedex, France
Tel.: +33-1 69 08 79 25
Fax: +33-1 69 08 82 61
E-Mail: konrad.hinsen at cea.fr

More information about the mmtk mailing list