eytelwein.belt_conveyor_design.core.volume_flow_mass_flow module

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.belt_edge_distance(belt_width: Quantity, used_belt_width: Quantity, unit: str = 'millimeter', precision: int = 2) Quantity[source]

Calculate the distance between the edge of the belt and the used belt width on each side.

This function assumes that the belt is symmetric, so the distance is the same on both sides. It calculates half the difference between the total belt width and the used belt width.

Parameters: belt_width (Quantity): The total width of the belt as a Quantity. used_belt_width (Quantity): The width of the belt that is actually used or the usable belt width. unit (str, optional): The unit for the returned distance. Defaults to “millimeter”. precision (int, optional): The number of decimal places to round the result to. Defaults to 2.

Returns: Quantity: The calculated distance from the belt edge to the used belt width on one side.

Raises: ValueError: If there is an error in converting units.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.cross_section_from_mass_flow_speed_density(mass_flow: Quantity, belt_speed: Quantity, bulk_density: Quantity, unit: str = 'meter**2', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.cross_section_from_volume_flow_speed(volume_flow: Quantity, belt_speed: Quantity, unit: str = 'meter**2', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.cross_section_of_fill(center_roll_length: Quantity, usable_belt_width: Quantity, troughing_angle: Quantity, equivalent_slope_angle: Quantity, unit: str = 'millimeter**2', precision: int = 5) Quantity[source]

Calculate the total cross-sectional area of the belt fill.

This function calculates the total cross-sectional area by summing the partial cross-sectional areas at water fill and above water fill. The calculations are based on the given center roll length, usable belt width, troughing angle, and equivalent slope angle.

Parameters: center_roll_length (Quantity): The length of the center roll as a Quantity with units of millimeters. usable_belt_width (Quantity): The usable width of the belt as a Quantity with units of millimeters. troughing_angle (Quantity): The troughing angle as a Quantity with units of degrees. equivalent_slope_angle (Quantity): The equivalent slope angle as a Quantity with units of degrees. unit (str, optional): The unit for the returned area. Defaults to “millimeter**2”. precision (int, optional): The number of decimal places to round the result to. Defaults to 5.

Returns: Quantity: The calculated total cross-sectional area as a Quantity with the specified unit.

Raises: ValueError: If there is an error in converting units or if the calculated area is negative.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.effective_filling_ratio(filling_ratio_operations: float, reduction_factor_inclined_fill: Quantity, unit: str = 'dimensionless', precision: int = 5) Quantity[source]

Calculate the effective filling ratio of a conveyor belt.

The effective filling ratio represents how much of a conveyor belt’s theoretical cross-section is actually filled with material under operational conditions, considering both the operational filling ratio and the reduction due to inclined fill.

The formula used is: effective_filling_ratio = filling_ratio_operations * reduction_factor_inclined_fill

Parameters: filling_ratio_operations (float): The filling ratio under operational conditions,

a dimensionless value typically between 0 and 1 representing the operational filling level compared to the theoretical maximum.

reduction_factor_inclined_fill (Quantity): The reduction factor for inclined fill,

a dimensionless quantity that accounts for material distribution on inclined belts.

unit (str, optional): The unit for the returned value. Must be dimensionless.

Defaults to “dimensionless”.

precision (int, optional): The number of decimal places to round the result to.

Defaults to 5.

Returns: Quantity: The calculated effective filling ratio as a dimensionless Quantity.

Raises: ValueError: If there is an error in converting units or if the input values are invalid.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.effective_filling_ratio_from_areas(theoretical_cross_section_of_fill: Quantity, actual_cross_section: Quantity, unit: str = 'dimensionless', precision: int = 5) Quantity[source]

Calculate the effective filling ratio based on the areas of the cross-section.

This function computes the effective filling ratio by dividing the actual cross-section by the theoretical cross-section. It is used in material handling or bulk solids transport to determine how full the conveyor belt is compared to its theoretical capacity.

Parameters:
  • theoretical_cross_section_of_fill (Quantity) – The theoretical maximum cross-sectional area of the fill. Can be in any area unit.

  • actual_cross_section (Quantity) – The actual cross-sectional area of the fill. Should have the same unit as theoretical_cross_section_of_fill.

  • unit (str, optional) – The desired output unit, defaults to “dimensionless”. Must be a dimensionless unit.

  • precision (int, optional) – The precision of the result (number of decimal places). Default is 5.

Returns:

The effective filling ratio as a dimensionless value typically between 0 and 1.

Return type:

Quantity

Raises:

ValueError – If the theoretical_cross_section_of_fill is zero or negative. If the units of theoretical_cross_section_of_fill and actual_cross_section are not compatible. If the specified output unit is not dimensionless.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.length_of_material_on_side_roll(part_of_belt_lying_on_side_idler: Quantity, belt_edge_distance: Quantity, unit: str = 'millimeter', precision: int = 2) Quantity[source]

Calculate the length of material on the side roll of a conveyor belt.

This function calculates the effective length of material on the side roll by subtracting the belt edge distance from the part of belt lying on the side idler.

Parameters: part_of_belt_lying_on_side_idler (Quantity): The length of the belt segment that lies on the side idler. belt_edge_distance (Quantity): The distance from the edge of the belt to the point where the material ends. unit (str, optional): The unit for the returned length. Defaults to “millimeter”. precision (int, optional): The number of decimal places to round the result to. Defaults to 2.

Returns: Quantity: The calculated effective length of material on the side roll with the specified unit.

Raises: ValueError: If there is an error in converting units.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.line_load_from_nominal_load(theoretical_cross_section: Quantity, effective_filling_ratio: float, bulk_density: Quantity, unit: str = 'kilogram/meter', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.line_load_from_nominal_mass_flow_speed(nominal_mass_flow: Quantity, belt_speed: Quantity, unit: str = 'kilogram/meter', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.mass_flow_from_cross_section_speed_density(cross_section_of_fill: Quantity, belt_speed: Quantity, bulk_density: Quantity, unit: str = 'kilogram/second', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.mass_flow_from_volume_flow_density(volume_flow: Quantity, bulk_density: Quantity, unit: str = 'kilogram/second', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.nominal_mass_flow(theoretical_volume_flow: Quantity, effective_filling_ratio: float, bulk_density: Quantity, unit: str = 'kilogram/second', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.nominal_volume_flow(theoretical_volume_flow: Quantity, effective_filling_ratio: float, unit: str = 'meter**3/second', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.partial_cross_section_above_water_fill(center_roll_length: Quantity, usable_belt_width: Quantity, troughing_angle: Quantity, equivalent_slope_angle: Quantity, unit: str = 'millimeter**2', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.partial_cross_section_at_water_fill(center_roll_length: Quantity, usable_belt_width: Quantity, troughing_angle: Quantity, unit: str = 'millimeter**2', precision: int = 5) Quantity[source]

Calculate the partial cross-sectional area of the belt at water fill.

This function calculates the area based on the given center roll length, usable belt width, and troughing angle. The formula used takes into account the geometry of the belt and the troughing angle to determine the area.

Parameters: center_roll_length (Quantity): The length of the center roll as a Quantity with units of millimeters. usable_belt_width (Quantity): The usable width of the belt as a Quantity with units of millimeters. troughing_angle (Quantity): The troughing angle as a Quantity with units of degrees. unit (str, optional): The unit for the returned area. Defaults to “millimeter**2”. precision (int, optional): The number of decimal places to round the result to. Defaults to 5.

Returns: Quantity: The calculated partial cross-sectional area as a Quantity with the specified unit.

Raises: ValueError: If there is an error in converting units or if the calculated area is negative.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.reduction_factor_inclined_fill(theoretical_partial_cross_section_above_water_fill: Quantity, theoretical_cross_section_of_fill: Quantity, reduction_factor_inclined_fill_1: Quantity, unit: str = 'dimensionless', precision: int = 5) Quantity[source]

Calculate the reduction factor for inclined fill on a conveyor belt.

This function calculates a reduction factor used to adjust the cross-sectional area of material on an inclined conveyor belt. It accounts for the proportion of material above the water fill line and applies a reduction factor based on the inclination.

The formula used is: 1 - (theoretical_partial_cross_section_above_water_fill / theoretical_cross_section_of_fill)

  • (1 - reduction_factor_inclined_fill_1)

Parameters: theoretical_partial_cross_section_above_water_fill (Quantity): The theoretical partial

cross-section above water fill as a Quantity with area units.

theoretical_cross_section_of_fill (Quantity): The theoretical total cross-section of

fill as a Quantity with area units.

reduction_factor_inclined_fill_1 (Quantity): The first reduction factor for inclined fill

as a dimensionless Quantity.

unit (str, optional): The unit for the returned factor. Defaults to “dimensionless”. precision (int, optional): The number of decimal places to round the result to. Defaults to 5.

Returns: Quantity: The calculated reduction factor as a dimensionless Quantity.

Raises: ValueError: If theoretical_cross_section_of_fill is zero or if there is an error

in converting units.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.reduction_factor_inclined_fill_1(maximal_inclination_angle: Quantity, dynamic_angle_of_slope: Quantity, unit: str = 'dimensionless', precision: int = 5) Quantity[source]

Calculate the reduction factor for inclined fill based on the maximal inclination angle and the dynamic angle of slope.

This function computes a reduction factor used in material handling or bulk solids transport, where the inclination of the fill affects the flow characteristics. The calculation is based on the cosine squared of the provided angles.

The formula used is sqrt((cos²(maximal_inclination_angle) - cos²(dynamic_angle_of_slope)) /

(1 - cos²(maximal_inclination_angle)))

Parameters: maximal_inclination_angle (Quantity): The maximal inclination angle of the fill as a Quantity with units of degrees. dynamic_angle_of_slope (Quantity): The dynamic angle of slope as a Quantity with units of degrees. unit (str, optional): The unit for the returned factor. Defaults to “dimensionless”. precision (int, optional): The number of decimal places to round the result to. Defaults to 5.

Returns: Quantity: The calculated reduction factor as a dimensionless Quantity.

Raises: ValueError: If the maximal inclination angle is greater than the dynamic angle of slope,

if there is an error in converting units, or if the calculation results in an invalid value.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.solve_for_used_belt_width_from_cross_section(target_cross_section: Quantity, center_roll_length: Quantity, troughing_angle: Quantity, equivalent_slope_angle: Quantity, initial_guess: Quantity | None = None, unit: str = 'millimeter', precision: int = 2) Quantity[source]

Calculate the used belt width required to achieve a specific cross-section area.

This function uses numerical methods to find the used belt width that would result in the specified target cross-section area, given the center roll length, troughing angle, and equivalent slope angle.

Parameters: target_cross_section (Quantity): The desired cross-section area as a Quantity. center_roll_length (Quantity): The length of the center roll as a Quantity. troughing_angle (Quantity): The troughing angle as a Quantity. equivalent_slope_angle (Quantity): The equivalent slope angle as a Quantity. initial_guess (Quantity, optional): Initial guess for used belt width. unit (str, optional): The unit for the returned width. Defaults to “millimeter”. precision (int, optional): The number of decimal places to round the result to. Defaults to 2.

Returns: Quantity: The calculated used belt width as a Quantity with the specified unit.

Raises: ValueError: If there is an error in converting units or if the solution doesn’t converge.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.usable_belt_width(belt_width: Quantity, unit: str = 'millimeter', precision: int = 2) Quantity[source]

Calculate the usable belt width based on the given belt width.

This function serves as a wrapper for the _usable_belt_width function, ensuring that the input is a Quantity with units of millimeters.

Parameters: belt_width (Quantity): The total width of the belt as a Quantity with units of millimeters. unit (str, optional): The unit for the returned width. Defaults to “millimeter”. precision (int, optional): The number of decimal places to round the result to. Defaults to 2.

Returns: Quantity: The usable width of the belt as a Quantity with the specified unit.

eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.volume_flow_from_cross_section_speed(cross_section_of_fill: Quantity, belt_speed: Quantity, unit: str = 'meter**3/second', precision: int = 5) Quantity[source]
eytelwein.belt_conveyor_design.core.volume_flow_mass_flow.volume_flow_from_mass_flow_density(m_flow: Quantity, bulk_density: Quantity, unit: str = 'meter**3/second', precision: int = 5) Quantity[source]

Calculate the volume flow of material from mass flow and bulk density.

This function calculates the volume flow rate by dividing the mass flow by the bulk density. It is the inverse of mass_flow_from_volume_flow_density and is useful when you have the mass flow and density and need to find the volumetric flow rate.

Parameters:
  • m_flow (Quantity) – The mass flow of material in kilograms per second [kg/s]

  • bulk_density (Quantity) – The bulk density of the material in kilograms per cubic meter [kg/m³]

  • unit (str, optional) – The unit for the returned volume flow. Defaults to “meter**3/second”.

  • precision (int, optional) – The number of decimal places to round the result to. Defaults to 5.

Returns:

The calculated volume flow in the specified unit [m³/s]

Return type:

Quantity

Raises:

ValueError – If bulk_density is zero or negative If unit conversion fails If invalid output unit is specified

Notes

The calculation follows the formula:

\[Q =\]

rac{m}{ ho}

Where: - Q is the volume flow [m³/s] - m is the mass flow [kg/s] - ρ is the bulk density [kg/m³]

This function is the inverse of mass_flow_from_volume_flow_density.

Examples

>>> import eytelwein.main.units as u
>>> from eytelwein.belt_conveyor_design import volume_flow_from_mass_flow_density
>>> m_flow = 1800 * u.kilogram / u.second
>>> density = 1200 * u.kilogram / u.meter**3
>>> volume_flow = volume_flow_from_mass_flow_density(m_flow, density)
>>> print(volume_flow)
1.5 meter ** 3 / second