public class ConcertedAtom extends AgAtomSimple
Modifier and Type | Field and Description |
---|---|
private ConcertedProcess[] |
processes |
CORNER, EDGE, EDGE_A, EDGE_B, ISLAND, KINK, KINK_A, KINK_B, TERRACE
ARMCHAIR_EDGE, BULK, SICK, ZIGZAG_EDGE, ZIGZAG_WITH_EXTRA
Constructor and Description |
---|
ConcertedAtom(int id,
int i) |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Resets current atom; TERRACE type, no occupied, no outside and no probability.
|
double |
getBondsProbability(int i)
Get probability in the given neighbour position.
|
private java.util.BitSet |
getCode()
Gets a BitSet of the current occupancy.
|
private byte |
getDetachedType(byte type,
int position)
When detaching from an island, the energy has to be different.
|
private int |
getDistance(int first,
int second)
Takes into account that maximum distance can be 3.
|
private byte |
getEdgeSubtype(java.util.BitSet bits)
Two atoms are together, separated by one position or two positions.
|
private byte |
getKinkSubtype(java.util.BitSet bits)
If the given number from bits is multiple of 21 all atoms are separated,
other multiples of 7, all 3 atoms are together.
|
ConcertedAtom |
getRandomNeighbour(byte process) |
byte |
getRealType()
Defines 11 atom types,subtypes:
0 -> 0
1 -> 1
2,0 -> 2
2,1 -> 3
2,2 -> 4
3,0 -> 5
3,1 -> 6
4,0 -> 7
4,1 -> 8
4,2 -> 9
5 -> 10
6 -> 16
with some of them as detaching destination.
|
private byte |
getType4Subtype(java.util.BitSet bitSet)
It is just the complementary of the edge one.
|
private byte |
getTypeCode(byte type,
java.util.BitSet bits) |
byte |
getTypeWithoutNeighbour(int position)
Returns the type of the neighbour atom if current one would not exist.
|
boolean |
isDimer() |
areTwoTerracesTogether, chooseRandomHop, isEligible, isPartOfImmobilSubstrate, probJumpToNeighbour
addNImmobile, addNMobile, getAllNeighbours, getNeighbour, getNewType, getNImmobile, getNMobile, getOrientation, getOrientation, getPos, obtainRateFromNeighbours, setNeighbour, setNImmobile, setNMobile, updateOneBound
addOccupiedNeighbour, addProbability, addRate, addToSumRate, areTwoTerracesTogetherInPerimeter, compareTo, equalRate, equals, getAngle, getAttributes, getBondsProbability, getCartesianPosition, getCartesianSuperCell, getDepositionPosition, getDepositionTime, getEdgeRate, getHops, getId, getiHexa, getIslandNumber, getjHexa, getMultiAtomNumber, getMultiplier, getOccupiedNeighbours, getProbability, getProbability, getProbability, getRate, getSumRate, getType, hashCode, initialiseRates, isInnerPerimeter, isIsolated, isOnList, isOuterPerimeter, isOutside, isVisited, remove, removeMultiAtomNumber, removeMultiAtoms, resetPerimeter, resetProbability, setAngle, setAttributes, setBondsProbability, setBondsProbability, setCartesianPosition, setCartesianSuperCell, setDepositionPosition, setDepositionTime, setHops, setInnerPerimeter, setIslandNumber, setMultiAtomNumber, setMultiplier, setOnList, setOuterPerimeter, setOutside, setProcceses, setRate, setSumRate, setType, setVisited, swapAttributes, toString, updateRate
getNumberOfNeighbours, getProbabilities, isOccupied, isOnList, isRemoved, setList, setNeighbour, setNumberOfNeighbours, setOccupied, setProbabilities, setRemoved, unRemove
private final ConcertedProcess[] processes
public ConcertedAtom getRandomNeighbour(byte process)
public void clear()
public boolean isDimer()
public double getBondsProbability(int i)
getBondsProbability
in class AbstractGrowthAtom
i
- neighbour position.public byte getRealType()
getRealType
in interface IAtom
getRealType
in class AgAtomSimple
private byte getTypeCode(byte type, java.util.BitSet bits)
public byte getTypeWithoutNeighbour(int position)
getTypeWithoutNeighbour
in class AgAtomSimple
position
- this position is the original one; has to be inverted.private byte getDetachedType(byte type, int position)
type
- position
- private java.util.BitSet getCode()
private byte getEdgeSubtype(java.util.BitSet bits)
bits
- private byte getKinkSubtype(java.util.BitSet bits)
bits
- private byte getType4Subtype(java.util.BitSet bitSet)
bitSet
- private int getDistance(int first, int second)
first
- atom position [0,5]second
- atom position [0,5]