def element_TempChange(Q, dV, dt, cv):
    """ Temperature change of a uniform temperature element, for given heat transfer in time interval
	
	Parameters
	----------	
	Q : float or (m x n) np.array
		heat transfer (inflow-outflow+generated) for the element [W]

	dV : float or (m x n) np.array
		volume of the element [m3]
		
	dt : float
		time interval for which the heat transfer and element properties are approximated constant [s]

	cv : float or (m x n) np.array
		volumetric heat capacity [J/(m**3K)]

	Returns
	-------
	dT : float or (m x n) np.array
		temperature change for the element
	
	Example use
	-----------
	print("### CASE 1 - HEATING OF WATER ###")
    print("Coolblue reports "experimental results" for water boiler:        
- 2200 W
- 115 sec till boiling (incl. 15 sec of boiling)
- for 0.5 l")

    # temperature increase
    V=0.5*10**-3 # [m3] volume of water
    Q=2200 # [W] net heat input
    duration=115-15 # [s] listed boiling time
    cv=4186*10**3 # [J/(m3K)] volumetric heat = 4186 [J/(kgK)] * 10**3 [kg/m3]
    
    # calculate temperature increase
    theta=ThermalTools.element_TempChange(Q,V,duration,cv)
    print("==> Temperature increase implied by Coolblue data: {:.2f} °Celcius".format(theta))

    ## Output :
    # ### CASE 1 - HEATING OF WATER ###
    # Coolblue reports "experimental results" for water boiler:
    # - 2200 W
    # - 115 sec till boiling (incl. 15 sec of boiling)
    # - for 0.5 l
    # ==> Temperature increase implied by Coolblue data: 105.11 °Celcius	 
	"""
    return Q * dt / (cv * dV)
