|
| v0.14.0
|
TS monitore it records temperature at time steps.
More...
#include <users_modules/basic_finite_elements/src/ThermalElement.hpp>
TS monitore it records temperature at time steps.
Definition at line 579 of file ThermalElement.hpp.
◆ Ele
◆ SetPtsData
◆ VolEle
◆ VolOp
◆ TimeSeriesMonitor()
ThermalElement::TimeSeriesMonitor::TimeSeriesMonitor |
( |
MoFEM::Interface & |
m_field, |
|
|
const std::string |
series_name, |
|
|
const std::string |
temp_name, |
|
|
std::vector< std::array< double, 3 >> |
eval_points = {} |
|
) |
| |
|
inline |
Definition at line 596 of file ThermalElement.hpp.
608 CHKERRABORT(PETSC_COMM_WORLD,
ierr);
610 auto no_rule = [](
int,
int,
int) {
return -1; };
612 tempPtr = boost::make_shared<VectorDouble>();
614 boost::shared_ptr<Ele> vol_ele(
dataFieldEval->feMethodPtr.lock());
615 vol_ele->getRuleHook = no_rule;
617 vol_ele->getOpPtrVector().push_back(
618 new OpCalculateScalarFieldValues(
"TEMP",
tempPtr));
◆ postProcess()
Definition at line 454 of file ThermalElement.cpp.
458 problemPtr,
ROW, ts_u, INSERT_VALUES, SCATTER_REVERSE);
460 BitRefLevel proble_bit_level = problemPtr->getBitRefLevel();
469 auto post_proc_at_points = [&](std::array<double, 3> point,
int num) {
472 dataFieldEval->setEvalPoints(point.data(), point.size() / 3);
474 struct OpPrint :
public VolOp {
476 std::array<double, 3> pointCoords;
478 boost::shared_ptr<VectorDouble>
tempPtr;
480 OpPrint(boost::shared_ptr<VectorDouble> temp_ptr,
481 std::array<double, 3> &point_coords,
int point_num)
483 pointCoords(point_coords), pointNum(point_num) {}
488 if (
type == MBVERTEX) {
489 if (getGaussPts().size2()) {
494 <<
"Pnt: " << std::to_string(pointNum)
504 fe_ptr->getOpPtrVector().push_back(
new OpPrint(
tempPtr, point, num));
506 point.data(), 1e-12,
"DMTHERMAL",
"THERMAL_FE",
dataFieldEval,
509 fe_ptr->getOpPtrVector().pop_back();
518 CHKERR post_proc_at_points(p, num++);
◆ dataFieldEval
boost::shared_ptr<SetPtsData> ThermalElement::TimeSeriesMonitor::dataFieldEval |
◆ evalPoints
std::vector<std::array<double, 3> > ThermalElement::TimeSeriesMonitor::evalPoints |
◆ mask
BitRefLevel ThermalElement::TimeSeriesMonitor::mask |
◆ mField
◆ seriesName
const std::string ThermalElement::TimeSeriesMonitor::seriesName |
◆ tempName
const std::string ThermalElement::TimeSeriesMonitor::tempName |
◆ tempPtr
boost::shared_ptr<VectorDouble> ThermalElement::TimeSeriesMonitor::tempPtr |
The documentation for this struct was generated from the following files:
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.
Data on single entity (This is passed as argument to DataOperator::doWork)
MoFEM::Interface & mField
virtual MoFEMErrorCode record_field(const std::string &serie_name, const std::string &field_name, const BitRefLevel &bit, const BitRefLevel &mask)
virtual MPI_Comm & get_comm() const =0
std::vector< std::array< double, 3 > > evalPoints
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
virtual int get_comm_rank() const =0
boost::shared_ptr< VectorDouble > tempPtr
const std::string seriesName
#define CHKERR
Inline error check.
virtual MoFEMErrorCode record_begin(const std::string &serie_name)
boost::shared_ptr< SetPtsData > dataFieldEval
auto getVectorAdaptor(T1 ptr, const size_t n)
Get Vector adaptor.
Field evaluator interface.
static auto getFTensor0FromVec(ublas::vector< T, A > &data)
Get tensor rank 0 (scalar) form data vector.
#define MOFEM_LOG_SYNCHRONISE(comm)
Synchronise "SYNC" channel.
Volume finite element base.
Vector manager is used to create vectors \mofem_vectors.
#define MOFEM_LOG(channel, severity)
Log.
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
const std::string tempName
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
virtual MoFEMErrorCode record_end(const std::string &serie_name, double time=0)