|
| void | addInput (const std::shared_ptr< Element > &inputElement, const std::string &inputComponent="output") override |
| | Register inputElement as an upstream source for this element.
|
| |
| void | changeDimensions (const ElementDimensions &newDimensions) override |
| | Resize the output field dimensions and rebuild the weight matrix. Preserves input field dimensions and clears weights. Connections are not removed — call removeInputs()/removeOutputs() first if needed.
|
| |
| void | changeInputDimensions (const ElementDimensions &newInputDimensions) |
| | Resize the input field dimensions and rebuild the weight matrix. Preserves output field dimensions and clears weights. Connections are not removed — call removeInputs()/removeOutputs() first if needed.
|
| |
| void | clearWeights () |
| | Reset the weight matrix to all zeros.
|
| |
| std::shared_ptr< Element > | clone () const override |
| |
| | FieldCoupling (const ElementCommonParameters &elementCommonParameters, const FieldCouplingParameters &fc_parameters) |
| | Construct a FieldCoupling.
|
| |
| FieldCouplingParameters | getParameters () const |
| |
| std::string | getWeightsDirectory () const |
| |
| void | init () override |
| | Initialize the element (called once before the simulation loop).
|
| |
| void | readWeights () |
| | Load the weight matrix from a binary file in weightsDirectory.
|
| |
| void | setLearning (bool learning) |
| | Enable or disable online weight updates.
|
| |
| void | setLearningRate (double learningRate) |
| |
| void | setParameters (const FieldCouplingParameters &fcp) |
| |
| void | setWeightsDirectory (const std::string &dir) |
| | Set the directory used for readWeights() / writeWeights().
|
| |
| void | step (double t, double deltaT) override |
| | Advance the element by one time step.
|
| |
| std::string | toString () const override |
| |
| void | tryReadWeights () |
| | Load weights if the file exists; log INFO in either case. Unlike readWeights(), this never logs an error — use it when weights may legitimately be absent (e.g. first run of a programmatic simulation).
|
| |
| void | writeWeights () const |
| | Save the current weight matrix to a binary file in weightsDirectory.
|
| |
| void | buildInputCache () |
| | Cache raw pointers to input component data. Call after all element init()s complete.
|
| |
| void | close () |
| |
| | Element (const ElementCommonParameters ¶meters) |
| | Construct an element with the given common parameters.
|
| |
| std::vector< double > | getComponent (const std::string &componentName) |
| | Return a copy of the named component vector.
|
| |
| std::vector< std::string > | getComponentList () const |
| |
| std::vector< double > * | getComponentPtr (const std::string &componentName) |
| |
| const std::unordered_map< std::string, std::vector< double > > * | getComponents () const |
| | Return a read-only pointer to the full components map.
|
| |
| ElementCommonParameters | getElementCommonParameters () const |
| |
| std::vector< std::shared_ptr< Element > > | getInputs () |
| |
| std::unordered_map< std::shared_ptr< Element >, std::string > | getInputsAndComponents () |
| | Return all inputs mapped to the component name they expose.
|
| |
| ElementLabel | getLabel () const |
| |
| int | getMaxSpatialDimension () const |
| |
| std::vector< std::shared_ptr< Element > > | getOutputs () |
| |
| int | getSize () const |
| | Return the number of spatial samples (size = round(x_max / d_x)).
|
| |
| double | getStepSize () const |
| | Return the spatial resolution (d_x).
|
| |
| int | getUniqueIdentifier () const |
| |
| std::string | getUniqueName () const |
| |
| bool | hasInput () const |
| |
| bool | hasInput (const std::string &inputElementName, const std::string &inputComponent) |
| |
| bool | hasInput (int inputElementId, const std::string &inputComponent) |
| |
| bool | hasOutput () const |
| |
| bool | hasOutput (const std::string &outputElementName, const std::string &outputComponent) |
| |
| bool | hasOutput (int outputElementId, const std::string &outputComponent) |
| |
| void | print () const |
| |
| void | removeInput (const std::string &inputElementId) |
| |
| void | removeInput (int uniqueId) |
| |
| void | removeInputs () |
| |
| void | removeOutput (const std::string &outputElementId) |
| | Deregister this element as an input of outputElementId.
|
| |
| void | removeOutput (int uniqueId) |
| | Deregister this element as an input of the element with uniqueId.
|
| |
| void | removeOutputs () |
| |
| void | setUniqueName (const std::string &name) |
| |
| void | updateInput () |
| | Pull data from all registered input elements into this element's components.
|
| |
| virtual | ~Element ()=default |
| |
Full-matrix learned coupling between two neural fields.
FieldCoupling maintains an (output_size × input_size) weight matrix W. On each step() it computes output = W * f(input) (matrix-vector product of the weight matrix with the input field's "output" component).
When learning is active (setLearning(true)), weights are updated according to the selected LearningRule (HEBB, OJA, or DELTA). Weights can be persisted to and loaded from disk via writeWeights() / readWeights().