def METHOD_NAME(blk):
    """
    General method for costing electrochemical nutrient recovery. Capital cost
    is based on the volumetirc flowrate and HRT of the incoming stream. Chemical
    dosing cost is based on MgCl2 cost.
    This method also registers the electricity demand as a costed flow.
    """
    t0 = blk.flowsheet().time.first()
    inlet_state = blk.unit_model.properties_in[t0]
    # Get parameter dict from database
    parameter_dict = blk.unit_model.config.database.get_unit_operation_parameters(
        blk.unit_model._tech_type, subtype=blk.unit_model.config.process_subtype
    )
    # Get costing parameter sub-block for this technology
    A, B = blk.unit_model._get_tech_parameters(
        blk,
        parameter_dict,
        blk.unit_model.config.process_subtype,
        [
            "HRT",
            "sizing_cost",
        ],
    )
    # Add cost variable and constraint
    blk.capital_cost = pyo.Var(
        initialize=1,
        units=blk.config.flowsheet_costing_block.base_currency,
        bounds=(0, None),
        doc="Capital cost of unit operation",
    )
    expr = pyo.units.convert(
        A * inlet_state.flow_vol * B,
        to_units=blk.config.flowsheet_costing_block.base_currency,
    )
    # Determine if a costing factor is required
    blk.unit_model._add_cost_factor(
        blk, parameter_dict["capital_cost"]["cost_factor"]
    )
    blk.capital_cost_constraint = pyo.Constraint(
        expr=blk.capital_cost == blk.cost_factor * expr
    )
    # Register flows
    blk.config.flowsheet_costing_block.cost_flow(
        blk.unit_model.electricity[t0], "electricity"
    )
    blk.config.flowsheet_costing_block.cost_flow(
        blk.unit_model.MgCl2_flowrate[t0], "magnesium_chloride"
    )