Source code for pina.condition.domain_equation_condition

"""Module for the DomainEquationCondition class."""

from .condition_interface import ConditionInterface
from ..utils import check_consistency
from ..domain import DomainInterface
from ..equation.equation_interface import EquationInterface


[docs] class DomainEquationCondition(ConditionInterface): """ Condition defined by a domain and an equation. It can be used in Physics Informed problems. Before using this condition, make sure that input data are correctly sampled from the domain. """ __slots__ = ["domain", "equation"] def __init__(self, domain, equation): """ Initialise the object by storing the domain and equation. :param DomainInterface domain: Domain object containing the domain data. :param EquationInterface equation: Equation object containing the equation data. """ super().__init__() self.domain = domain self.equation = equation def __setattr__(self, key, value): if key == "domain": check_consistency(value, (DomainInterface, str)) DomainEquationCondition.__dict__[key].__set__(self, value) elif key == "equation": check_consistency(value, (EquationInterface)) DomainEquationCondition.__dict__[key].__set__(self, value) elif key in ("_problem"): super().__setattr__(key, value)