16 PRECICE_ASSERT(!
hasReadMapping(),
"The read data context must be unique. Otherwise we would have an ambiguous read data operation on the user side.");
29 const Eigen::MatrixXd sample{
_providedData->sampleAtTime(readTime)};
31 for (
int i = 0; i < static_cast<int>(vertices.
size()); ++i) {
32 outputData.col(i) = localData.col(vertices[i]);
46 auto id = context.fromData->getID();
49 context.toData->timeStepsStorage().clearExceptLast();
51 context.toData->timeStepsStorage().clear();
62 if (from.
contains(context.fromData->getID())) {
63 context.toData->timeStepsStorage().trimAfter(t);
#define PRECICE_TRACE(...)
#define PRECICE_ASSERT(...)
Stores one Data object with related mesh.
int getMeshVertexCount() const
Get the number of vertices of mesh.
void appendMapping(MappingContext mappingContext)
Helper to append a mappingContext, fromData and toData to the corresponding data containers.
std::string getDataName() const
Get the Name of _providedData.
int getDataDimensions() const
Get the dimensions of _providedData.
bool hasMapping() const
Informs the user whether this DataContext has any _mappingContext.
bool hasReadMapping() const
Informs the user whether this DataContext has any read mapping.
mesh::PtrData _providedData
Unique data this context is associated with.
std::vector< MappingContext > _mappingContexts
Defines all mappings associated to this DataContext. A DataContext may also exist without a mapping.
std::string getMeshName() const
Get the name of _mesh.
void trimToDataAfterFor(const cplscheme::ImplicitData &from, double t)
Trims all toData of associated mappings after the given t.
int getWaveformDegree() const
Gets degree of waveform.
ReadDataContext(mesh::PtrData data, mesh::PtrMesh mesh)
Construct a new ReadDataContext object without a mapping.
void readValues(::precice::span< const VertexID > vertices, double time, ::precice::span< double > values) const
Samples data at a given point in time within the current time window for given indices.
void clearToDataFor(const cplscheme::ImplicitData &from)
Removes all toData samples from mappings.
void appendMappingConfiguration(MappingContext &mappingContext, const MeshContext &meshContext) override
Adds a MappingContext and the MeshContext required by the read mapping to the corresponding ReadDataC...
static logging::Logger _log
A C++ 11 implementation of the non-owning C++20 std::span type.
constexpr pointer data() const noexcept
constexpr size_type size() const noexcept
bool contains(DataID did) const
bool toKeep(DataID did) const
Holds a data mapping and related information.
mesh::PtrData fromData
data which is mapped from mesh
mesh::PtrData toData
data which is mapped to mesh
Stores a mesh and related objects and data.
mesh::PtrMesh mesh
Mesh holding the geometry data structure.