text: # coding: utf-8
  
  """
      SimScale API
  
      The version of the OpenAPI document: 0.0.0
      Generated by: https://openapi-generator.tech
  """
  
  
  import pprint
  import re  # noqa: F401
  
  import six
  
  from simscale_sdk.configuration import Configuration
  
  
  class CustomFluidBC(object):
      """NOTE: This class is auto generated by OpenAPI Generator.
      Ref: https://openapi-generator.tech
  
      Do not edit the class manually.
      """
  
      """
      Attributes:
        openapi_types (dict): The key is attribute name
                              and the value is attribute type.
        attribute_map (dict): The key is attribute name
                              and the value is json key in definition.
      """
      openapi_types = {
          'type': 'str',
          'name': 'str',
          'velocity': 'OneOfCustomFluidBCVelocity',
          'pressure': 'OneOfCustomFluidBCPressure',
          'pressure_rgh': 'OneOfCustomFluidBCPressureRgh',
          'gauge_pressure': 'OneOfCustomFluidBCGaugePressure',
          'gauge_pressure_rgh': 'OneOfCustomFluidBCGaugePressureRgh',
          'temperature': 'OneOfCustomFluidBCTemperature',
          'turbulent_kinetic_energy': 'OneOfCustomFluidBCTurbulentKineticEnergy',
          'omega_dissipation_rate': 'OneOfCustomFluidBCOmegaDissipationRate',
          'epsilon_dissipation_rate': 'OneOfCustomFluidBCEpsilonDissipationRate',
          'eddy_viscosity': 'OneOfCustomFluidBCEddyViscosity',
          'eddy_viscosity_compressible': 'OneOfCustomFluidBCEddyViscosityCompressible',
          'nu_tilda': 'OneOfCustomFluidBCNuTilda',
          'turbulent_thermal_diffusivity': 'OneOfCustomFluidBCTurbulentThermalDiffusivity',
          'turbulent_thermal_diffusivity_compressible': 'OneOfCustomFluidBCTurbulentThermalDiffusivityCompressible',
          'turbulent_dynamic_viscosity': 'OneOfCustomFluidBCTurbulentDynamicViscosity',
          'passive_scalars': 'list[OneOfCustomFluidBCPassiveScalars]',
          'phase_fraction': 'OneOfCustomFluidBCPhaseFraction',
          'net_radiative_heat_flux': 'OneOfCustomFluidBCNetRadiativeHeatFlux',
          'topological_reference': 'TopologicalReference'
      }
  
      attribute_map = {
          'type': 'type',
          'name': 'name',
          'velocity': 'velocity',
          'pressure': 'pressure',
          'pressure_rgh': 'pressureRgh',
          'gauge_pressure': 'gaugePressure',
          'gauge_pressure_rgh': 'gaugePressureRgh',
          'temperature': 'temperature',
          'turbulent_kinetic_energy': 'turbulentKineticEnergy',
          'omega_dissipation_rate': 'omegaDissipationRate',
          'epsilon_dissipation_rate': 'epsilonDissipationRate',
          'eddy_viscosity': 'eddyViscosity',
          'eddy_viscosity_compressible': 'eddyViscosityCompressible',
          'nu_tilda': 'nuTilda',
          'turbulent_thermal_diffusivity': 'turbulentThermalDiffusivity',
          'turbulent_thermal_diffusivity_compressible': 'turbulentThermalDiffusivityCompressible',
          'turbulent_dynamic_viscosity': 'turbulentDynamicViscosity',
          'passive_scalars': 'passiveScalars',
          'phase_fraction': 'phaseFraction',
          'net_radiative_heat_flux': 'netRadiativeHeatFlux',
          'topological_reference': 'topologicalReference'
      }
  
      def __init__(self, type='CUSTOM_V37', name=None, velocity=None, pressure=None, pressure_rgh=None, gauge_pressure=None, gauge_pressure_rgh=None, temperature=None, turbulent_kinetic_energy=None, omega_dissipation_rate=None, epsilon_dissipation_rate=None, eddy_viscosity=None, eddy_viscosity_compressible=None, nu_tilda=None, turbulent_thermal_diffusivity=None, turbulent_thermal_diffusivity_compressible=None, turbulent_dynamic_viscosity=None, passive_scalars=None, phase_fraction=None, net_radiative_heat_flux=None, topological_reference=None, local_vars_configuration=None):  # noqa: E501
          """CustomFluidBC - a model defined in OpenAPI"""  # noqa: E501
          if local_vars_configuration is None:
              local_vars_configuration = Configuration()
          self.local_vars_configuration = local_vars_configuration
  
          self._type = None
          self._name = None
          self._velocity = None
          self._pressure = None
          self._pressure_rgh = None
          self._gauge_pressure = None
          self._gauge_pressure_rgh = None
          self._temperature = None
          self._turbulent_kinetic_energy = None
          self._omega_dissipation_rate = None
          self._epsilon_dissipation_rate = None
          self._eddy_viscosity = None
          self._eddy_viscosity_compressible = None
          self._nu_tilda = None
          self._turbulent_thermal_diffusivity = None
          self._turbulent_thermal_diffusivity_compressible = None
          self._turbulent_dynamic_viscosity = None
          self._passive_scalars = None
          self._phase_fraction = None
          self._net_radiative_heat_flux = None
          self._topological_reference = None
          self.discriminator = None
  
          self.type = type
          if name is not None:
              self.name = name
          if velocity is not None:
              self.velocity = velocity
          if pressure is not None:
              self.pressure = pressure
          if pressure_rgh is not None:
              self.pressure_rgh = pressure_rgh
          if gauge_pressure is not None:
              self.gauge_pressure = gauge_pressure
          if gauge_pressure_rgh is not None:
              self.gauge_pressure_rgh = gauge_pressure_rgh
          if temperature is not None:
              self.temperature = temperature
          if turbulent_kinetic_energy is not None:
              self.turbulent_kinetic_energy = turbulent_kinetic_energy
          if omega_dissipation_rate is not None:
              self.omega_dissipation_rate = omega_dissipation_rate
          if epsilon_dissipation_rate is not None:
              self.epsilon_dissipation_rate = epsilon_dissipation_rate
          if eddy_viscosity is not None:
              self.eddy_viscosity = eddy_viscosity
          if eddy_viscosity_compressible is not None:
              self.eddy_viscosity_compressible = eddy_viscosity_compressible
          if nu_tilda is not None:
              self.nu_tilda = nu_tilda
          if turbulent_thermal_diffusivity is not None:
              self.turbulent_thermal_diffusivity = turbulent_thermal_diffusivity
          if turbulent_thermal_diffusivity_compressible is not None:
              self.turbulent_thermal_diffusivity_compressible = turbulent_thermal_diffusivity_compressible
          if turbulent_dynamic_viscosity is not None:
              self.turbulent_dynamic_viscosity = turbulent_dynamic_viscosity
          if passive_scalars is not None:
              self.passive_scalars = passive_scalars
          if phase_fraction is not None:
              self.phase_fraction = phase_fraction
          if net_radiative_heat_flux is not None:
              self.net_radiative_heat_flux = net_radiative_heat_flux
          if topological_reference is not None:
              self.topological_reference = topological_reference
  
      @property
      def type(self):
          """Gets the type of this CustomFluidBC.  # noqa: E501
  
          This boundary condition allows the user to choose conditions for each physical variable separately. It provides full flexibility over the choice of boundary conditions to make advanced customization possible.  Schema name: CustomFluidBC  # noqa: E501
  
          :return: The type of this CustomFluidBC.  # noqa: E501
          :rtype: str
          """
          return self._type
  
      @type.setter
      def type(self, type):
          """Sets the type of this CustomFluidBC.
  
          This boundary condition allows the user to choose conditions for each physical variable separately. It provides full flexibility over the choice of boundary conditions to make advanced customization possible.  Schema name: CustomFluidBC  # noqa: E501
  
          :param type: The type of this CustomFluidBC.  # noqa: E501
          :type: str
          """
          if self.local_vars_configuration.client_side_validation and type is None:  # noqa: E501
              raise ValueError("Invalid value for `type`, must not be `None`")  # noqa: E501
  
          self._type = type
  
      @property
      def name(self):
          """Gets the name of this CustomFluidBC.  # noqa: E501
  
  
          :return: The name of this CustomFluidBC.  # noqa: E501
          :rtype: str
          """
          return self._name
  
      @name.setter
      def name(self, name):
          """Sets the name of this CustomFluidBC.
  
  
          :param name: The name of this CustomFluidBC.  # noqa: E501
          :type: str
          """
  
          self._name = name
  
      @property
      def velocity(self):
          """Gets the velocity of this CustomFluidBC.  # noqa: E501
  
  
          :return: The velocity of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCVelocity
          """
          return self._velocity
  
      @velocity.setter
      def velocity(self, velocity):
          """Sets the velocity of this CustomFluidBC.
  
  
          :param velocity: The velocity of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCVelocity
          """
  
          self._velocity = velocity
  
      @property
      def pressure(self):
          """Gets the pressure of this CustomFluidBC.  # noqa: E501
  
  
          :return: The pressure of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCPressure
          """
          return self._pressure
  
      @pressure.setter
      def pressure(self, pressure):
          """Sets the pressure of this CustomFluidBC.
  
  
          :param pressure: The pressure of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCPressure
          """
  
          self._pressure = pressure
  
      @property
      def pressure_rgh(self):
          """Gets the pressure_rgh of this CustomFluidBC.  # noqa: E501
  
  
          :return: The pressure_rgh of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCPressureRgh
          """
          return self._pressure_rgh
  
      @pressure_rgh.setter
      def pressure_rgh(self, pressure_rgh):
          """Sets the pressure_rgh of this CustomFluidBC.
  
  
          :param pressure_rgh: The pressure_rgh of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCPressureRgh
          """
  
          self._pressure_rgh = pressure_rgh
  
      @property
      def gauge_pressure(self):
          """Gets the gauge_pressure of this CustomFluidBC.  # noqa: E501
  
  
          :return: The gauge_pressure of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCGaugePressure
          """
          return self._gauge_pressure
  
      @gauge_pressure.setter
      def gauge_pressure(self, gauge_pressure):
          """Sets the gauge_pressure of this CustomFluidBC.
  
  
          :param gauge_pressure: The gauge_pressure of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCGaugePressure
          """
  
          self._gauge_pressure = gauge_pressure
  
      @property
      def gauge_pressure_rgh(self):
          """Gets the gauge_pressure_rgh of this CustomFluidBC.  # noqa: E501
  
  
          :return: The gauge_pressure_rgh of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCGaugePressureRgh
          """
          return self._gauge_pressure_rgh
  
      @gauge_pressure_rgh.setter
      def gauge_pressure_rgh(self, gauge_pressure_rgh):
          """Sets the gauge_pressure_rgh of this CustomFluidBC.
  
  
          :param gauge_pressure_rgh: The gauge_pressure_rgh of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCGaugePressureRgh
          """
  
          self._gauge_pressure_rgh = gauge_pressure_rgh
  
      @property
      def temperature(self):
          """Gets the temperature of this CustomFluidBC.  # noqa: E501
  
  
          :return: The temperature of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCTemperature
          """
          return self._temperature
  
      @temperature.setter
      def temperature(self, temperature):
          """Sets the temperature of this CustomFluidBC.
  
  
          :param temperature: The temperature of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCTemperature
          """
  
          self._temperature = temperature
  
      @property
      def turbulent_kinetic_energy(self):
          """Gets the turbulent_kinetic_energy of this CustomFluidBC.  # noqa: E501
  
  
          :return: The turbulent_kinetic_energy of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCTurbulentKineticEnergy
          """
          return self._turbulent_kinetic_energy
  
      @turbulent_kinetic_energy.setter
      def turbulent_kinetic_energy(self, turbulent_kinetic_energy):
          """Sets the turbulent_kinetic_energy of this CustomFluidBC.
  
  
          :param turbulent_kinetic_energy: The turbulent_kinetic_energy of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCTurbulentKineticEnergy
          """
  
          self._turbulent_kinetic_energy = turbulent_kinetic_energy
  
      @property
      def omega_dissipation_rate(self):
          """Gets the omega_dissipation_rate of this CustomFluidBC.  # noqa: E501
  
  
          :return: The omega_dissipation_rate of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCOmegaDissipationRate
          """
          return self._omega_dissipation_rate
  
      @omega_dissipation_rate.setter
      def omega_dissipation_rate(self, omega_dissipation_rate):
          """Sets the omega_dissipation_rate of this CustomFluidBC.
  
  
          :param omega_dissipation_rate: The omega_dissipation_rate of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCOmegaDissipationRate
          """
  
          self._omega_dissipation_rate = omega_dissipation_rate
  
      @property
      def epsilon_dissipation_rate(self):
          """Gets the epsilon_dissipation_rate of this CustomFluidBC.  # noqa: E501
  
  
          :return: The epsilon_dissipation_rate of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCEpsilonDissipationRate
          """
          return self._epsilon_dissipation_rate
  
      @epsilon_dissipation_rate.setter
      def epsilon_dissipation_rate(self, epsilon_dissipation_rate):
          """Sets the epsilon_dissipation_rate of this CustomFluidBC.
  
  
          :param epsilon_dissipation_rate: The epsilon_dissipation_rate of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCEpsilonDissipationRate
          """
  
          self._epsilon_dissipation_rate = epsilon_dissipation_rate
  
      @property
      def eddy_viscosity(self):
          """Gets the eddy_viscosity of this CustomFluidBC.  # noqa: E501
  
  
          :return: The eddy_viscosity of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCEddyViscosity
          """
          return self._eddy_viscosity
  
      @eddy_viscosity.setter
      def eddy_viscosity(self, eddy_viscosity):
          """Sets the eddy_viscosity of this CustomFluidBC.
  
  
          :param eddy_viscosity: The eddy_viscosity of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCEddyViscosity
          """
  
          self._eddy_viscosity = eddy_viscosity
  
      @property
      def eddy_viscosity_compressible(self):
          """Gets the eddy_viscosity_compressible of this CustomFluidBC.  # noqa: E501
  
  
          :return: The eddy_viscosity_compressible of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCEddyViscosityCompressible
          """
          return self._eddy_viscosity_compressible
  
      @eddy_viscosity_compressible.setter
      def eddy_viscosity_compressible(self, eddy_viscosity_compressible):
          """Sets the eddy_viscosity_compressible of this CustomFluidBC.
  
  
          :param eddy_viscosity_compressible: The eddy_viscosity_compressible of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCEddyViscosityCompressible
          """
  
          self._eddy_viscosity_compressible = eddy_viscosity_compressible
  
      @property
      def nu_tilda(self):
          """Gets the nu_tilda of this CustomFluidBC.  # noqa: E501
  
  
          :return: The nu_tilda of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCNuTilda
          """
          return self._nu_tilda
  
      @nu_tilda.setter
      def nu_tilda(self, nu_tilda):
          """Sets the nu_tilda of this CustomFluidBC.
  
  
          :param nu_tilda: The nu_tilda of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCNuTilda
          """
  
          self._nu_tilda = nu_tilda
  
      @property
      def turbulent_thermal_diffusivity(self):
          """Gets the turbulent_thermal_diffusivity of this CustomFluidBC.  # noqa: E501
  
  
          :return: The turbulent_thermal_diffusivity of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCTurbulentThermalDiffusivity
          """
          return self._turbulent_thermal_diffusivity
  
      @turbulent_thermal_diffusivity.setter
      def turbulent_thermal_diffusivity(self, turbulent_thermal_diffusivity):
          """Sets the turbulent_thermal_diffusivity of this CustomFluidBC.
  
  
          :param turbulent_thermal_diffusivity: The turbulent_thermal_diffusivity of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCTurbulentThermalDiffusivity
          """
  
          self._turbulent_thermal_diffusivity = turbulent_thermal_diffusivity
  
      @property
      def turbulent_thermal_diffusivity_compressible(self):
          """Gets the turbulent_thermal_diffusivity_compressible of this CustomFluidBC.  # noqa: E501
  
  
          :return: The turbulent_thermal_diffusivity_compressible of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCTurbulentThermalDiffusivityCompressible
          """
          return self._turbulent_thermal_diffusivity_compressible
  
      @turbulent_thermal_diffusivity_compressible.setter
      def turbulent_thermal_diffusivity_compressible(self, turbulent_thermal_diffusivity_compressible):
          """Sets the turbulent_thermal_diffusivity_compressible of this CustomFluidBC.
  
  
          :param turbulent_thermal_diffusivity_compressible: The turbulent_thermal_diffusivity_compressible of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCTurbulentThermalDiffusivityCompressible
          """
  
          self._turbulent_thermal_diffusivity_compressible = turbulent_thermal_diffusivity_compressible
  
      @property
      def turbulent_dynamic_viscosity(self):
          """Gets the turbulent_dynamic_viscosity of this CustomFluidBC.  # noqa: E501
  
  
          :return: The turbulent_dynamic_viscosity of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCTurbulentDynamicViscosity
          """
          return self._turbulent_dynamic_viscosity
  
      @turbulent_dynamic_viscosity.setter
      def turbulent_dynamic_viscosity(self, turbulent_dynamic_viscosity):
          """Sets the turbulent_dynamic_viscosity of this CustomFluidBC.
  
  
          :param turbulent_dynamic_viscosity: The turbulent_dynamic_viscosity of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCTurbulentDynamicViscosity
          """
  
          self._turbulent_dynamic_viscosity = turbulent_dynamic_viscosity
  
      @property
      def passive_scalars(self):
          """Gets the passive_scalars of this CustomFluidBC.  # noqa: E501
  
          Please choose a boundary condition for passive scalar (T).  # noqa: E501
  
          :return: The passive_scalars of this CustomFluidBC.  # noqa: E501
          :rtype: list[OneOfCustomFluidBCPassiveScalars]
          """
          return self._passive_scalars
  
      @passive_scalars.setter
      def passive_scalars(self, passive_scalars):
          """Sets the passive_scalars of this CustomFluidBC.
  
          Please choose a boundary condition for passive scalar (T).  # noqa: E501
  
          :param passive_scalars: The passive_scalars of this CustomFluidBC.  # noqa: E501
          :type: list[OneOfCustomFluidBCPassiveScalars]
          """
  
          self._passive_scalars = passive_scalars
  
      @property
      def phase_fraction(self):
          """Gets the phase_fraction of this CustomFluidBC.  # noqa: E501
  
  
          :return: The phase_fraction of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCPhaseFraction
          """
          return self._phase_fraction
  
      @phase_fraction.setter
      def phase_fraction(self, phase_fraction):
          """Sets the phase_fraction of this CustomFluidBC.
  
  
          :param phase_fraction: The phase_fraction of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCPhaseFraction
          """
  
          self._phase_fraction = phase_fraction
  
      @property
      def net_radiative_heat_flux(self):
          """Gets the net_radiative_heat_flux of this CustomFluidBC.  # noqa: E501
  
  
          :return: The net_radiative_heat_flux of this CustomFluidBC.  # noqa: E501
          :rtype: OneOfCustomFluidBCNetRadiativeHeatFlux
          """
          return self._net_radiative_heat_flux
  
      @net_radiative_heat_flux.setter
      def net_radiative_heat_flux(self, net_radiative_heat_flux):
          """Sets the net_radiative_heat_flux of this CustomFluidBC.
  
  
          :param net_radiative_heat_flux: The net_radiative_heat_flux of this CustomFluidBC.  # noqa: E501
          :type: OneOfCustomFluidBCNetRadiativeHeatFlux
          """
  
          self._net_radiative_heat_flux = net_radiative_heat_flux
  
      @property
      def topological_reference(self):
          """Gets the topological_reference of this CustomFluidBC.  # noqa: E501
  
  
          :return: The topological_reference of this CustomFluidBC.  # noqa: E501
          :rtype: TopologicalReference
          """
          return self._topological_reference
  
      @topological_reference.setter
      def topological_reference(self, topological_reference):
          """Sets the topological_reference of this CustomFluidBC.
  
  
          :param topological_reference: The topological_reference of this CustomFluidBC.  # noqa: E501
          :type: TopologicalReference
          """
  
          self._topological_reference = topological_reference
  
      def to_dict(self):
          """Returns the model properties as a dict"""
          result = {}
  
          for attr, _ in six.iteritems(self.openapi_types):
              value = getattr(self, attr)
              if isinstance(value, list):
                  result[attr] = list(map(
                      lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                      value
                  ))
              elif hasattr(value, "to_dict"):
                  result[attr] = value.to_dict()
              elif isinstance(value, dict):
                  result[attr] = dict(map(
                      lambda item: (item[0], item[1].to_dict())
                      if hasattr(item[1], "to_dict") else item,
                      value.items()
                  ))
              else:
                  result[attr] = value
  
          return result
  
      def to_str(self):
          """Returns the string representation of the model"""
          return pprint.pformat(self.to_dict())
  
      def __repr__(self):
          """For `print` and `pprint`"""
          return self.to_str()
  
      def __eq__(self, other):
          """Returns true if both objects are equal"""
          if not isinstance(other, CustomFluidBC):
              return False
  
          return self.to_dict() == other.to_dict()
  
      def __ne__(self, other):
          """Returns true if both objects are not equal"""
          if not isinstance(other, CustomFluidBC):
              return True
  
          return self.to_dict() != other.to_dict()
  