unpacked
|
aspirin.class,
aspirin.java,
aterm.class,
aterm.java,
atom.class,
atom.java,
buckybal.class,
buckybal.java,
carbon.class,
carbon.java,
diamond.class,
diamond.java,
dl_atom.class,
dl_atom.java,
dl_bond.class,
dl_bond.java,
dlentry.class,
dlentry.java,
dlforce.class,
dlforce.java,
group.class,
group.java,
hydrogen.class,
hydrogen.java,
lrterm.class,
lrterm.java,
lterm.class,
lterm.java,
nanocad.class,
nanocad.java,
ncad.html,
nitrogen.class,
nitrogen.java,
oxygen.class,
oxygen.java,
propane.class,
propane.java,
term.class,
term.java,
tterm.class,
tterm.java,
tworings.class,
tworings.java,
view.class,
view.java,
water.class,
water.java,
wrapper.class,
wrapper.java
|
|
|
/**
* atom.java - definition of an atom, elements are subclasses of atom
* Copyright (c) 1997 Will Ware, all rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* or its derived works must display the following acknowledgement:
* This product includes software developed by Will Ware.
*
* This software is provided "as is" and any express or implied warranties,
* including, but not limited to, the implied warranties of merchantability
* or fitness for any particular purpose are disclaimed. In no event shall
* Will Ware be liable for any direct, indirect, incidental, special,
* exemplary, or consequential damages (including, but not limited to,
* procurement of substitute goods or services; loss of use, data, or
* profits; or business interruption) however caused and on any theory of
* liability, whether in contract, strict liability, or tort (including
* negligence or otherwise) arising in any way out of the use of this
* software, even if advised of the possibility of such damage.
*/
import java.awt.Color;
import java.util.Vector;
public abstract class atom
{
public static final String rcsid =
"$Id: atom.java,v 1.21 1997/09/12 13:23:19 wware Exp $";
// hybridizations are a virtual enum
public static final int SP3 = 0;
public static final int SP2 = 1;
public static final int SP = 2;
public static final int NONE = 3;
// these should be defined within elements, as class variables
public abstract String name ();
public abstract String symbol ();
public abstract int atomicNumber ();
public abstract double mass ();
public abstract Color color ();
public abstract double covalentRadius ();
public abstract double vdwEnergy ();
public abstract double vdwRadius ();
public abstract int maxNumBonds ();
// these should be instance variables
public int Charge;
public double fractionalCharge;
public int hybridization;
public double[] x;
public double[] v;
public double[] f;
public Vector bonds;
public atom ()
{
hybridization = NONE;
bonds = new Vector();
Charge = 0;
fractionalCharge = 0.0;
double zvec[] = { 0.0, 0.0, 0.0 };
x = v = f = zvec;
}
public void zeroForce ()
{
double newf[] = { 0.0, 0.0, 0.0 };
f = newf;
}
public int sigmaBonds ()
{
return bonds.size ();
}
// overload me, unless I'm hydrogen
public void rehybridize ()
{
hybridization = NONE;
}
}
|