Source code for pycif.plugins.transforms.basic.families
"""This transform aggregates tracers from a given component into a single output
tracer.
This is basically done by summing up tracers.
"""
from .forward import forward
from .adjoint import adjoint
_name = "families"
_fullname = "Tracer families or addition"
input_arguments = {
"component": {
"doc": "Component of the input tracers to be aggregated",
"default": None,
"accepted": str
},
"component_out": {
"doc": "Component of the output tracer, if different from the input component.",
"default": None,
"optional": True,
"accepted": str
},
"parameters_in": {
"doc": "List of tracers to be aggregated.",
"default": None,
"accepted": list
},
"parameter_out": {
"doc": "Name of the output tracer.",
"default": None,
"optional": True,
"accepted": str
}
}
[docs]
def ini_mapper(transform, general_mapper={}, **kwargs):
parameters_in = transform.parameters_in
parameter_out = transform.parameter_out
component = transform.component
component_out = getattr(transform, "component_out", component)
trid_out = (component_out, parameter_out)
loc_outputs = {
trid_out:
{"force_loadin": True, "force_dump": False,
"tracer_from_previous": True,
# "sparse_data_from_previous": True,
# "dates_from_previous": True
}
}
loc_inputs = {
(component, param):
{"force_loadin": True, "force_dump": False}
for param in parameters_in
}
mapper = {"inputs": loc_inputs, "outputs": loc_outputs}
mapper["outputs2inputs"] = {
trid_out: [(component, param) for param in parameters_in]
}
return mapper