project_prop_on_subset!(
prop_arr::AbstractVector{T},
from_subset::IMASDD.edge_profiles__grid_ggd___grid_subset,
to_subset::IMASDD.edge_profiles__grid_ggd___grid_subset,
@@ -121,12 +121,12 @@
Nothing,
Tuple{Matrix{U}, Matrix{U}, Matrix{U}, Vector{Tuple{U, U}}},
}=nothing,
-) where {T <: edge_profiles__prop_on_subset, U <: Real}
This function can be used to add another instance on a property vector representing the value in a new subset that can be taken as a projection from an existing larger subset.
Input Arguments:
- prop: A property like electrons.density that is a vector of objects with fields coefficients, gridindex, gridsubsetindex, and values. The different instances in the vector correspond to different gridsubset for which the property is provided.
- fromsubset: gridsubset object which is already represented in the property instance. grid subset with index 5 is populated in electrons.density already if the values for all cells are present.
- tosubset: gridsubset which is either a smaller part of fromsubset (core, sol, idr, odr) but has same dimensions as fromsubset OR is smaller in dimension that goes through the fromsubset (coreboundary, separatix etc.)
- space: (optional) space object in gridggd is required only when fromsubset is higher dimensional than to_subset.
Returns: NOTE: This function ends in ! which means it updates prop argument in place. But for the additional utility, this function also returns a tuple (tosubsetcenters, topropvalues) when fromsubset dimension is greater than tosubset dimension OR (tosubseteleobjinds, topropvalues) when fromsubset dimension is same as tosubset dimension)
Descriptions: tosubsetcenters: center of cells or center of edges of the tosubset where property values are defined and stored tosubseteleobjinds: Indices of the elements of tosubset where property values are defined and stored topropvalues: The projected values of the properties added to prop object in a new instance