Skip to content

← Back to UpdateCouplingParameterMethod_NoOp documentation

UpdateCouplingParameterMethod_NoOp - Source Code

File: Distributed_Design_Optimizer/coordination/updatecouplingparametermethod/UpdateCouplingParameterMethod_NoOp.py

# Copyright (C) The DistributedDesignOptimizer Contributors
# Licensed under the GNU General Public License v3.0. See LICENSE file for details.
"""No-op coupling parameter update method.

This module implements a no-op update strategy that performs no updates.
Used by subsystems that manage coupling parameters externally or do not
require parameter updates (e.g., controller subsystems).
"""

from typing import List
from Distributed_Design_Optimizer.coordination.updatecouplingparametermethod.UpdateCouplingParameterMethodInterface import UpdateCouplingParameterMethodInterface


class UpdateCouplingParameterMethod_NoOp(UpdateCouplingParameterMethodInterface):
    """No-op update method that performs no coupling parameter updates.

    Used as a placeholder for subsystems that do not update coupling
    parameters through the standard strategy interface.
    """

    def __init__(self) -> None:
        """Initialize the no-op update method."""
        pass

    def validate_inputs(self) -> None:
        """No-op: no parameters to validate."""
        pass

    def update_CoordinationMultipliers(self,
                                       multiplierin: List[float],
                                       weightsin: List[float],
                                       inconsistencyin: List[float]) -> None:
        """No-op: does not update multipliers.

        Args:
            multiplierin: Current multiplier values.
            weightsin: Current weight values.
            inconsistencyin: Current inconsistency values.
        """
        pass

    def update_CoordinationWeights(self,
                                   weightin: List[float],
                                   inconsistencyIn: List[float],
                                   inconsistencyOldIn: List[float] | None) -> None:
        """No-op: does not update weights.

        Args:
            weightin: Current penalty weights.
            inconsistencyIn: Current inconsistency values.
            inconsistencyOldIn: Previous inconsistency values, or None.
        """
        pass

    def get_InitialWeight(self) -> float:
        """No-op: this method does not provide an initial weight.

        Returns:
            ``None``; this no-op method does not provide an initial weight.
        """
        pass

    def get_InitialMultiplier(self) -> float:
        """No-op: this method does not provide an initial multiplier.

        Returns:
            ``None``; this no-op method does not provide an initial multiplier.
        """
        pass

    def print_startup_summary(self) -> None:
        """Nothing to print."""
        pass

    def print_termination_summary(self) -> None:
        """Nothing to print."""
        pass

    def update_state(self, other: 'UpdateCouplingParameterMethod_NoOp') -> None:
        """No-op: no state to update.

        Args:
            other: The source instance (ignored).
        """
        pass