ethos_penalps.mass_balance

ethos_penalps.mass_balance#

Module Contents#

Classes#

MassBalance

Attributes#

logger

ethos_penalps.mass_balance.logger#
class ethos_penalps.mass_balance.MassBalance(commodity: ethos_penalps.data_classes.Commodity, stream_handler: ethos_penalps.stream_handler.StreamHandler, time_data: ethos_penalps.time_data.TimeData, input_to_output_conversion_factor: numbers.Number, main_output_stream: ethos_penalps.stream.ContinuousStream | ethos_penalps.stream.BatchStream, main_input_stream: ethos_penalps.stream.ContinuousStream | ethos_penalps.stream.BatchStream, optional_input_stream_list: list[ethos_penalps.stream.ContinuousStream | ethos_penalps.stream.BatchStream], state_data_container: ethos_penalps.simulation_data.container_simulation_data.ProductionProcessStateContainer, process_step_name: str)#
standard_mass_unit#
standard_time_unit#

A mass balance realizes three functions. - Connection of input and output streams. - Integration of storage for mass - Conversion of commodities

set_continuous_operation_rate_for_parallel_input_and_output_stream_with_storage() ethos_penalps.stream.ContinuousStreamState#
set_batch_stream_for_parallel_input_and_output_with_storage() ethos_penalps.stream.BatchStreamState#
get_output_stream_mass_without_storage() numbers.Number#
set_continuous_input_stream_according_to_output_stream_with_storage(operation_rate: numbers.Number = float('inf')) ethos_penalps.stream.ContinuousStreamState#
set_batch_input_stream_according_to_output_stream_with_storage() ethos_penalps.stream.BatchStreamState#
determine_next_stream_end_time_from_previous_input_streams() datetime.datetime#
determine_next_stream_start_time_from_previous_input_streams() datetime.datetime#
determine_required_batch_end_time_to_fulfill_storage() datetime.datetime#
convert_output_to_input_mass(output_mass: numbers.Number) numbers.Number#
convert_input_to_output_mass(input_mass: numbers.Number) numbers.Number#
determine_required_input_rate(output_stream_state: ethos_penalps.stream.ContinuousStreamState, input_to_output_conversion_factor: numbers.Number)#
reevaluate_storage_level_according_to_adapted_input_stream() ethos_penalps.stream.BatchStreamState | ethos_penalps.stream.ContinuousStreamState#
create_storage(current_storage_level: numbers.Number = 0, minimum_storage_level_at_start_time_of_production_branch: numbers.Number = 0, maximum_storage_level_at_start_time_of_production_branch: numbers.Number | None = None) ethos_penalps.storage.Storage#

Each process step requires a storage currently. Currently storage level must be 0 at start

Returns:

_description_

Return type:

_type_

add_main_input_stream_name(input_stream_name: str)#
add_main_output_stream_name(output_stream_name: str)#
get_input_stream_name() str#
get_output_stream_name() str#
check_input_and_output_stream_mass_balance()#
determine_missing_mass_for_output_stream()#
check_if_production_branch_is_fulfilled()#
check_if_production_branch_is_fulfilled_with_over_production() bool#
check_if_output_stream_can_be_supplied_directly_from_storage()#
determine_if_input_stream_is_bigger_than_output() bool#