piel.models.physical.electrical.cable
=====================================

.. py:module:: piel.models.physical.electrical.cable


Attributes
----------

.. autoapisummary::

   piel.models.physical.electrical.cable.MaterialReferenceType
   piel.models.physical.electrical.cable.CableHeatTransferTypes
   piel.models.physical.electrical.cable.CableGeometryTypes
   piel.models.physical.electrical.cable.CableMaterialSpecificationTypes
   piel.models.physical.electrical.cable.TemperatureRangeTypes


Classes
-------

.. autoapisummary::

   piel.models.physical.electrical.cable.CoaxialCableGeometryType
   piel.models.physical.electrical.cable.CoaxialCableHeatTransferType
   piel.models.physical.electrical.cable.CoaxialCableMaterialSpecificationType
   piel.models.physical.electrical.cable.DCCableGeometryType
   piel.models.physical.electrical.cable.DCCableHeatTransferType
   piel.models.physical.electrical.cable.DCCableMaterialSpecificationType


Functions
---------

.. autoapisummary::

   piel.models.physical.electrical.cable.calculate_cross_sectional_area_m2
   piel.models.physical.electrical.cable.awg_to_cross_sectional_area_m2
   piel.models.physical.electrical.cable.heat_transfer_1d_W
   piel.models.physical.electrical.cable.get_thermal_conductivity_fit
   piel.models.physical.electrical.cable.calculate_coaxial_cable_geometry
   piel.models.physical.electrical.cable.define_coaxial_cable_materials
   piel.models.physical.electrical.cable.calculate_coaxial_cable_heat_transfer
   piel.models.physical.electrical.cable.calculate_dc_cable_geometry
   piel.models.physical.electrical.cable.define_dc_cable_materials
   piel.models.physical.electrical.cable.calculate_dc_cable_heat_transfer


Module Contents
---------------

.. py:function:: calculate_cross_sectional_area_m2(diameter_m: float) -> float

   Calculates the cross-sectional area of a circle in meters squared.

   :param diameter_m: Diameter of the circle in meters.
   :type diameter_m: float

   :returns: Cross sectional area in meters squared.
   :rtype: float


.. py:function:: awg_to_cross_sectional_area_m2(awg: int) -> float

   Converts an AWG value to the cross-sectional area in meters squared.

   :param awg: The AWG value to convert.
   :type awg: int

   :returns: The cross-sectional area in meters squared.
   :rtype: float


.. py:function:: heat_transfer_1d_W(thermal_conductivity_fit, temperature_range_K: piel.models.physical.types.TemperatureRangeTypes, cross_sectional_area_m2: float, length_m: float, *args, **kwargs) -> float

   Calculate the heat transfer in watts for a 1D system. The thermal conductivity is assumed to be a function of
   temperature.

   .. math::

       q = A \int_{T_1}^{T_2} k(T) dT

   :param thermal_conductivity_fit:
   :param temperature_range_K:
   :param cross_sectional_area_m2:
   :param length_m:

   :returns: The heat transfer in watts for a 1D system.
   :rtype: float


.. py:data:: MaterialReferenceType

.. py:function:: get_thermal_conductivity_fit(temperature_range_K: piel.models.physical.types.TemperatureRangeTypes, material: piel.materials.thermal_conductivity.types.MaterialReferenceType, *args, **kwargs) -> piel.types.ArrayTypes

   Get the thermal conductivity fit for a given material.

   :param temperature_range_K:
   :param material:

   Returns:


.. py:class:: CoaxialCableGeometryType

   Bases: :py:obj:`piel.types.QuantityType`


   The base class for all cable types.


   .. py:attribute:: core_cross_sectional_area_m2
      :type:  Optional[float]

      The cross-sectional area of the core in meters squared.


   .. py:attribute:: length_m
      :type:  float

      The length of the cable in meters.


   .. py:attribute:: sheath_cross_sectional_area_m2
      :type:  Optional[float]

      The cross-sectional area of the sheath in meters squared.


   .. py:attribute:: total_cross_sectional_area_m2
      :type:  Optional[float]

      The total cross-sectional area of the cable in meters squared.


.. py:class:: CoaxialCableHeatTransferType

   Bases: :py:obj:`piel.types.QuantityType`


   All units are in watts.


   .. py:attribute:: core
      :type:  Optional[float]

      The computed heat transfer in watts for the core of the cable.


   .. py:attribute:: sheath
      :type:  Optional[float]

      The computed heat transfer in watts for the sheath of the cable.


   .. py:attribute:: dielectric
      :type:  Optional[float]

      The computed heat transfer in watts for the dielectric of the cable.


   .. py:attribute:: total
      :type:  float

      The total computed heat transfer in watts for the cable.


.. py:class:: CoaxialCableMaterialSpecificationType

   Bases: :py:obj:`piel.types.QuantityType`


   The base class for all cable types.


   .. py:attribute:: core
      :type:  Optional[piel.materials.thermal_conductivity.types.MaterialReferenceType]

      The material of the core.


   .. py:attribute:: sheath
      :type:  Optional[piel.materials.thermal_conductivity.types.MaterialReferenceType]

      The material of the sheath.


   .. py:attribute:: dielectric
      :type:  Optional[piel.materials.thermal_conductivity.types.MaterialReferenceType]

      The material of the dielectric.


.. py:class:: DCCableGeometryType

   Bases: :py:obj:`piel.types.QuantityType`


   The base class for all cable types.


   .. py:attribute:: core_cross_sectional_area_m2
      :type:  float

      The cross-sectional area of the core in meters squared.


   .. py:attribute:: length_m
      :type:  float

      The length of the cable in meters.


   .. py:attribute:: total_cross_sectional_area_m2
      :type:  float

      The total cross-sectional area of the cable in meters squared.


.. py:class:: DCCableHeatTransferType

   Bases: :py:obj:`piel.types.QuantityType`


   All units are in watts.


   .. py:attribute:: core
      :type:  Optional[float]

      The computed heat transfer in watts for the core of the cable.


   .. py:attribute:: total
      :type:  float

      The total computed heat transfer in watts for the cable.


.. py:class:: DCCableMaterialSpecificationType

   Bases: :py:obj:`piel.types.QuantityType`


   The base class for all cable types.


   .. py:attribute:: core
      :type:  Optional[piel.materials.thermal_conductivity.types.MaterialReferenceType]

      The material of the core.


.. py:data:: CableHeatTransferTypes

.. py:data:: CableGeometryTypes

.. py:data:: CableMaterialSpecificationTypes

.. py:data:: TemperatureRangeTypes

.. py:function:: calculate_coaxial_cable_geometry(length_m: float = 1, sheath_top_diameter_m: float = 0.001651, sheath_bottom_diameter_m: float = 0.001468, core_diameter_dimension: Literal['awg', 'metric'] = 'metric', core_diameter_awg: piel.models.physical.electrical.types.Optional[float] = None, core_diameter_m: float = 0.002, **kwargs) -> piel.models.physical.electrical.types.CoaxialCableGeometryType

   Calculate the geometry of a coaxial cable. Defaults are based on the parameters of a TODO

   :param length_m: Length of the cable in meters.
   :param sheath_top_diameter_m: Diameter of the top of the sheath in meters.
   :param sheath_bottom_diameter_m: Diameter of the bottom of the sheath in meters.
   :param core_diameter_dimension: Dimension of the core diameter.
   :param core_diameter_awg: Core diameter in AWG.
   :param core_diameter_m: Core diameter in meters.
   :param \*\*kwargs:

   :returns: The geometry of the coaxial cable.
   :rtype: CoaxialCableGeometryType


.. py:function:: define_coaxial_cable_materials(core_material: piel.models.physical.electrical.types.MaterialReferenceType, sheath_material: piel.models.physical.electrical.types.MaterialReferenceType, dielectric_material: piel.models.physical.electrical.types.MaterialReferenceType) -> piel.models.physical.electrical.types.CoaxialCableMaterialSpecificationType

   Define the materials of a coaxial cable.

   :param core_material: The material of the core.
   :param sheath_material: The material of the sheath.
   :param dielectric_material: The material of the dielectric.

   :returns: The material specification of the coaxial cable.
   :rtype: CoaxialCableMaterialSpecificationType


.. py:function:: calculate_coaxial_cable_heat_transfer(temperature_range_K: piel.models.physical.types.TemperatureRangeTypes, geometry_class: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.CoaxialCableGeometryType], material_class: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.CoaxialCableMaterialSpecificationType], core_material: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.MaterialReferenceType] = None, sheath_material: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.MaterialReferenceType] = None, dielectric_material: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.MaterialReferenceType] = None) -> piel.models.physical.electrical.types.CoaxialCableHeatTransferType

   Calculate the heat transfer of a coaxial cable.

   :param temperature_range_K: The temperature range in Kelvin.
   :param geometry_class: The geometry of the cable.
   :param material_class: The material of the cable.
   :param core_material: The material of the core.
   :param sheath_material: The material of the sheath.
   :param dielectric_material: The material of the dielectric.

   :returns: The heat transfer of the cable.
   :rtype: CoaxialCableHeatTransferType


.. py:function:: calculate_dc_cable_geometry(length_m: float = 1, core_diameter_dimension: Literal['awg', 'metric'] = 'metric', core_diameter_awg: piel.models.physical.electrical.types.Optional[float] = None, core_diameter_m: float = 0.002, *args, **kwargs) -> piel.models.physical.electrical.types.DCCableGeometryType

   Calculate the geometry of a DC cable. Defaults are based on the parameters of a TODO

   :param length_m: Length of the cable in meters.
   :param core_diameter_dimension: Dimension of the core diameter.
   :param core_diameter_awg: Core diameter in AWG.
   :param core_diameter_m: Core diameter in meters.
   :param \*\*kwargs:

   :returns: The geometry of the coaxial cable.
   :rtype: CoaxialCableGeometryType


.. py:function:: define_dc_cable_materials(core_material: piel.models.physical.electrical.types.MaterialReferenceType) -> piel.models.physical.electrical.types.DCCableMaterialSpecificationType

   Define the materials of a coaxial cable.

   :param core_material: The material of the core.

   :returns: The material specification of the dc cable.
   :rtype: DCCableMaterialSpecificationType


.. py:function:: calculate_dc_cable_heat_transfer(temperature_range_K: piel.models.physical.types.TemperatureRangeTypes, geometry_class: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.DCCableGeometryType], material_class: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.DCCableMaterialSpecificationType], core_material: piel.models.physical.electrical.types.Optional[piel.models.physical.electrical.types.MaterialReferenceType] = None) -> piel.models.physical.electrical.types.DCCableHeatTransferType

   Calculate the heat transfer of a coaxial cable.

   :param temperature_range_K: The temperature range in Kelvin.
   :param geometry_class: The geometry of the cable.
   :param material_class: The material of the cable.
   :param core_material: The material of the core.

   :returns: The heat transfer of the cable.
   :rtype: DCCableHeatTransferType


