Class SecondNeighbourGeometry
Object
AbstractGeometry
AbstractLattice
SquareGeometry
SecondNeighbourGeometry
Square lattice with second-neighbour von Neumann connectivity (diagonals
only).
-
Field Summary
Fields inherited from class AbstractLattice
fixedBoundaryFields inherited from class AbstractGeometry
connectivity, EMPTY_LINKS, engine, features, in, isInterspecies, isRegular, isRewired, isSingle, isUndirected, isValid, kin, kout, logger, name, network2D, network3D, out, pAddwire, pRewire, size, specs, type -
Constructor Summary
ConstructorsConstructorDescriptionSecondNeighbourGeometry(EvoLudo engine) Create a second-neighbour square lattice geometry tied to the given engine. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidadjustBoundaries(int side, int fullside, int offset, boolean interspecies) Adjust second-neighbour von Neumann stencils along fixed boundaries.protected booleanHook for subclasses to implement geometry specific checks.voidinit()Generates square regular lattices with arbitrary neighbourhood sizes.booleanParse geometry-specific CLI options.Methods inherited from class SquareGeometry
ensureSquareSize, initSquare, initSquareSelf, prepareSquareLattice, warnIfConnectivityProvidedMethods inherited from class AbstractLattice
clone, equals, hashCode, isFixedBoundary, setFixedBoundary, stripBoundaryMethods inherited from class AbstractGeometry
addDirected, addEdgeAt, addLinkAt, addUndirected, alloc, check, clearLinksFrom, clearLinksTo, create, create, decodeGeometry, deriveCompetitionGeometry, displaySingle, encodeGeometry, enforceSize, getAddwire, getConnectivity, getEncodeKey, getFeatures, getLabel, getName, getNetwork2D, getNetwork3D, getRewire, getSize, getSpecs, getType, isConsistent, isGraphConnected, isInterspecies, isLattice, isNeighborOf, isRegular, isRewired, isSingle, isType, isUndirected, isUnique, parse, removeEdgeAt, removeLinkAt, rewire, rewireDirected, rewireEdgeAt, rewireLinkAt, rewireUndirected, setAddwire, setConnectivity, setInterspecies, setName, setNetwork2D, setNetwork3D, setRewire, setSingle, setSize, setType, swapEdges, usage, warn
-
Constructor Details
-
SecondNeighbourGeometry
Create a second-neighbour square lattice geometry tied to the given engine.- Parameters:
engine- EvoLudo pacemaker
-
-
Method Details
-
parse
Description copied from class:AbstractGeometryParse geometry-specific CLI options.- Overrides:
parsein classSquareGeometry- Parameters:
arg- the argument string without the geometry key- Returns:
trueif parsing succeeded,falseif invalid
-
init
public void init()Description copied from class:SquareGeometryGenerates square regular lattices with arbitrary neighbourhood sizes. Variant-specific initializers for standard stencils are available to subclasses.Requirements/notes:
- Population size must be a perfect square \(N=n^2\).
- Admissible connectivities are \(4\) (von Neumann) or \((2m+1)^2-1\) for Moore-type stencils.
- Inter-species interactions add the focal node as a neighbour and allow connectivity \(1\).
- Boundaries are periodic by default but can be fixed.
- Overrides:
initin classSquareGeometry
-
adjustBoundaries
private void adjustBoundaries(int side, int fullside, int offset, boolean interspecies) Adjust second-neighbour von Neumann stencils along fixed boundaries.- Parameters:
side- side length of the (sub) latticefullside- global side lengthoffset- index offset into the populationinterspecies-trueif self-links are required
-
checkSettings
protected boolean checkSettings()Description copied from class:AbstractGeometryHook for subclasses to implement geometry specific checks.- Overrides:
checkSettingsin classSquareGeometry- Returns:
trueif adjustments require a reset
-