All Downloads are FREE. Search and download functionalities are using the official Maven repository.

JSci.physics.RelativisticParticle Maven / Gradle / Ivy

Go to download

JSci is a set of open source Java packages. The aim is to encapsulate scientific methods/principles in the most natural way possible. As such they should greatly aid the development of scientific based software. It offers: abstract math interfaces, linear algebra (support for various matrix and vector types), statistics (including probability distributions), wavelets, newtonian mechanics, chart/graph components (AWT and Swing), MathML DOM implementation, ... Note: some packages, like javax.comm, for the astro and instruments package aren't listed as dependencies (not available).

The newest version!
package JSci.physics;

import JSci.GlobalSettings;
import JSci.physics.relativity.*;

/**
* The RelativisticParticle class provides an object for
* encapsulating relativistic particles.
* @version 1.0
* @author Mark Hale
*/
public abstract class RelativisticParticle extends Particle {
        /**
        * Constructs a relativistic particle.
        */
        public RelativisticParticle() {}
        /**
        * Rest mass.
        */
        public abstract double restMass();
        /**
        * Position 4-vector.
        */
        public Rank1Tensor position=new Rank1Tensor(0.0,0.0,0.0,0.0);
        /**
        * Momentum 4-vector.
        */
        public Rank1Tensor momentum=new Rank1Tensor(0.0,0.0,0.0,0.0);
        /**
        * Compares two particles for equality.
        * @param p a relativistic particle
        */
        public boolean equals(Object p) {
                return (p!=null) && (p instanceof RelativisticParticle) &&
                        (position.equals(((RelativisticParticle)p).position)) &&
                        (momentum.equals(((RelativisticParticle)p).momentum)) &&
                        (Math.abs(restMass()-((RelativisticParticle)p).restMass())<=GlobalSettings.ZERO_TOL);
        }
        public int hashCode() {
            return (int) restMass();
        }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy