I think this function takes the PI basis functions, finds the orders and then maps to some order_weights which we can control using a dictionary D. Does this make sense? (to be placed in /src/rpi/rpi_basis.jl)
function scaling_N(basis::RPIBasis, p, D; a2b = abs)
wwpi = scaling(basis.pibasis, p)
wwrpi = zeros(Float64, length(basis))
for iz0 = 1:numz(basis)
pibasis_fncs = collect(keys(basis.pibasis.inner[iz0].b2iAA))
orders = order.(pibasis_fncs)
order_weights = [D[order] for order in orders]
wwpi_iz0 = order_weights .* wwpi[basis.pibasis.inner[iz0].AAindices]
wwrpi[basis.Bz0inds[iz0]] = a2b.(basis.A2Bmaps[iz0]) * wwpi_iz0
end
return wwrpi
end
I think this function takes the PI basis functions, finds the orders and then maps to some order_weights which we can control using a dictionary D. Does this make sense? (to be placed in
/src/rpi/rpi_basis.jl
)with usage being
I think this returns a scaling vector the size of the rpi_basis, but with scaled laplacian coefficients according to the interaction order.