Source code for pycif.plugins.transforms.system.dump2inputs.adjoint

from logging import info


[docs] def adjoint( transform, inout_datastore, controlvect, obsvect, mapper, di, df, mode, runsubdir, workdir, onlyinit=False, check_transforms=False, **kwargs ): datastore = inout_datastore["outputs"] for trid in mapper["inputs"]: input_type = trid[0] # Create new data to extract data2dump = {trid: {"data": datastore.get(trid, {}), **mapper["inputs"][trid]}} if not onlyinit: data2dump = transform.native2inputs_adj( data2dump, input_type, di, df, runsubdir, mode, check_transforms=check_transforms ) for tr in data2dump: if tr in inout_datastore["inputs"]: inout_datastore["inputs"][tr].update(data2dump[tr]["data"]) else: info( "{} was simulated by the model, " "but could not be transferred to the control vector".format( tr ) ) # Update inputs inout_datastore["inputs"].update(inout_datastore["outputs"])