Class SquareGeometry
Object
AbstractGeometry
AbstractLattice
SquareGeometry
- Direct Known Subclasses:
MooreGeometry, SecondNeighbourGeometry, VonNeumannGeometry
Square lattice with arbitrary neighbourhood sizes. Provides shared helpers
for square-based variants.
-
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
ConstructorsConstructorDescriptionSquareGeometry(EvoLudo engine) Create a square lattice geometry tied to the given engine. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidadjustBoundaries(int range, int side, int fullside, int offset, boolean interspecies) Adjust arbitrary-range neighbourhoods along fixed boundaries.protected booleanHook for subclasses to implement geometry specific checks.protected booleanensureSquareSize(boolean requireEvenSide) Enforce square lattice size and optionally even side lengths.voidinit()Generates square regular lattices with arbitrary neighbourhood sizes.protected voidinitSquare(int side, int fullside, int offset) Initialize a square lattice with arbitrary (odd) neighbourhood sizes.protected voidinitSquareSelf(int side, int fullside, int offset) Initialize a square lattice that only connects nodes to themselves (used when connectivity equals one).booleanParse geometry-specific CLI options.protected intCommon setup for square geometries.protected voidwarnIfConnectivityProvided(String numeric) Emit a warning if the user attempts to specify connectivity for a fixed stencil.Methods 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
-
SquareGeometry
Create a 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 classAbstractGeometry- Parameters:
arg- the argument string without the geometry key- Returns:
trueif parsing succeeded,falseif invalid
-
warnIfConnectivityProvided
Emit a warning if the user attempts to specify connectivity for a fixed stencil.- Parameters:
numeric- connectivity string passed on the CLI
-
init
public void init()Generates 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.
- Specified by:
initin classAbstractGeometry
-
prepareSquareLattice
protected int prepareSquareLattice()Common setup for square geometries.- Returns:
- the computed side length of the lattice
-
initSquareSelf
protected void initSquareSelf(int side, int fullside, int offset) Initialize a square lattice that only connects nodes to themselves (used when connectivity equals one).- Parameters:
side- side length of the (sub) latticefullside- global side lengthoffset- index offset into the population
-
initSquare
protected void initSquare(int side, int fullside, int offset) Initialize a square lattice with arbitrary (odd) neighbourhood sizes.- Parameters:
side- side length of the (sub) latticefullside- global side lengthoffset- index offset into the population
-
adjustBoundaries
private void adjustBoundaries(int range, int side, int fullside, int offset, boolean interspecies) Adjust arbitrary-range neighbourhoods along fixed boundaries.- Parameters:
range- interaction rangeside- side length of the (sub) latticefullside- global side lengthoffset- index offset into the populationinterspecies-trueif self-links are required
-
ensureSquareSize
protected boolean ensureSquareSize(boolean requireEvenSide) Enforce square lattice size and optionally even side lengths.- Parameters:
requireEvenSide-trueif the side length must be even- Returns:
trueif the size had to be adjusted
-
checkSettings
protected boolean checkSettings()Description copied from class:AbstractGeometryHook for subclasses to implement geometry specific checks.- Overrides:
checkSettingsin classAbstractGeometry- Returns:
trueif adjustments require a reset
-