Loading [MathJax]/extensions/tex2jax.js
OGS
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
IntegrationPointWriter.cpp File Reference

Detailed Description

Definition in file IntegrationPointWriter.cpp.

#include "IntegrationPointWriter.h"
#include <range/v3/view/join.hpp>
#include "MeshLib/Mesh.h"
#include "MeshLib/Utils/getOrCreateMeshProperty.h"
Include dependency graph for IntegrationPointWriter.cpp:

Go to the source code of this file.

Namespaces

namespace  MeshLib
 

Functions

static MeshLib::IntegrationPointMetaDataSingleField addIntegrationPointData (MeshLib::Mesh &mesh, MeshLib::IntegrationPointWriter const &writer)
 
static void addIntegrationPointMetaDataSingleField (MeshLib::Mesh &mesh, MeshLib::IntegrationPointMetaData const &ip_meta_data)
 
void MeshLib::addIntegrationPointDataToMesh (MeshLib::Mesh &mesh, std::vector< std::unique_ptr< IntegrationPointWriter > > const &integration_point_writer)
 
std::optional< IntegrationPointMetaDataMeshLib::getIntegrationPointMetaData (MeshLib::Properties const &properties)
 

Function Documentation

◆ addIntegrationPointData()

static MeshLib::IntegrationPointMetaDataSingleField addIntegrationPointData ( MeshLib::Mesh & mesh,
MeshLib::IntegrationPointWriter const & writer )
static

Adds the integration point data and creates meta data for it.

Returns meta data for the written integration point data.

Definition at line 21 of file IntegrationPointWriter.cpp.

23{
24 auto const& ip_values = writer.values(/*t, x, dof_table*/);
25 assert(ip_values.size() == mesh.getNumberOfElements());
26
27 // create field data and fill it with nodal values, and an offsets cell
28 // array indicating where the cell's integration point data starts.
30 mesh, writer.name(), MeshLib::MeshItemType::IntegrationPoint,
31 writer.numberOfComponents());
32 field_data.clear();
33
34 ranges::copy(ip_values | ranges::views::join,
35 std::back_inserter(field_data));
36
37 return {writer.name(), writer.numberOfComponents(),
38 writer.integrationOrder()};
39}
std::size_t getNumberOfElements() const
Get the number of elements.
Definition Mesh.h:99
PropertyVector< T > * getOrCreateMeshProperty(Mesh &mesh, std::string const &property_name, MeshItemType const item_type, int const number_of_components)

References MeshLib::Mesh::getNumberOfElements(), MeshLib::getOrCreateMeshProperty(), MeshLib::IntegrationPointWriter::integrationOrder(), MeshLib::IntegrationPoint, MeshLib::IntegrationPointWriter::name(), MeshLib::IntegrationPointWriter::numberOfComponents(), and MeshLib::IntegrationPointWriter::values().

Referenced by MeshLib::addIntegrationPointDataToMesh().

◆ addIntegrationPointMetaDataSingleField()

static void addIntegrationPointMetaDataSingleField ( MeshLib::Mesh & mesh,
MeshLib::IntegrationPointMetaData const & ip_meta_data )
static

Adds integration point meta data as char mesh property encoded in JSON format, which is then stored as VTK's field data.

Definition at line 43 of file IntegrationPointWriter.cpp.

45{
46 // Store the field data.
47 std::string const json_string = ip_meta_data.toJsonString();
49 mesh, "IntegrationPointMetaData",
51 dictionary.clear();
52 std::copy(json_string.begin(), json_string.end(),
53 std::back_inserter(dictionary));
54}

References MeshLib::getOrCreateMeshProperty(), MeshLib::IntegrationPoint, and MeshLib::IntegrationPointMetaData::toJsonString().

Referenced by MeshLib::addIntegrationPointDataToMesh().