454 {
456
458 problemPtr,
ROW, ts_u, INSERT_VALUES, SCATTER_REVERSE);
459
460 BitRefLevel proble_bit_level = problemPtr->getBitRefLevel();
461
468
469 auto post_proc_at_points = [&](std::array<double, 3> point, int num) {
471
472 dataFieldEval->setEvalPoints(point.data(), point.size() / 3);
473
474 struct OpPrint :
public VolOp {
475
476 std::array<double, 3> pointCoords;
477 int pointNum;
478 boost::shared_ptr<VectorDouble> tempPtr;
479
480 OpPrint(boost::shared_ptr<VectorDouble> temp_ptr,
481 std::array<double, 3> &point_coords, int point_num)
482 :
VolOp(
"TEMP",
VolOp::OPROW), tempPtr(temp_ptr),
483 pointCoords(point_coords), pointNum(point_num) {}
484
486 DataForcesAndSourcesCore::EntData &data) {
488 if (type == MBVERTEX) {
489 if (getGaussPts().size2()) {
490
492
494 << "Pnt: " << std::to_string(pointNum)
496 << " Tmp: " << t_p;
497 }
498 }
500 }
501 };
502
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();
510 }
511
513 };
514
516 int num = 0;
518 CHKERR post_proc_at_points(
p, num++);
519 }
520
522
524}
#define MOFEM_LOG_SYNCHRONISE(comm)
Synchronise "SYNC" channel.
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MOFEM_LOG(channel, severity)
Log.
virtual MoFEMErrorCode record_field(const std::string &serie_name, const std::string &field_name, const BitRefLevel &bit, const BitRefLevel &mask)
virtual MoFEMErrorCode record_begin(const std::string &serie_name)
virtual MoFEMErrorCode record_end(const std::string &serie_name, double time=0)
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
auto getVectorAdaptor(T1 ptr, const size_t n)
Get Vector adaptor.
static auto getFTensor0FromVec(ublas::vector< T, A > &data)
Get tensor rank 0 (scalar) form data vector.
virtual MPI_Comm & get_comm() const =0
virtual int get_comm_rank() const =0
Field evaluator interface.
Vector manager is used to create vectors \mofem_vectors.