www.mooseframework.org
UpdateDisplacedMeshThread.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 // MOOSE includes
13 #include "MooseMesh.h"
14 #include "ThreadedNodeLoop.h"
15 
16 // Forward declarations
17 class DisplacedProblem;
19 
20 // libMesh forward declarations
21 namespace libMesh
22 {
23 template <typename T>
24 class NumericVector;
25 }
26 
27 class UpdateDisplacedMeshThread : public ThreadedNodeLoop<NodeRange, NodeRange::const_iterator>
28 {
29 public:
30  UpdateDisplacedMeshThread(FEProblemBase & fe_problem, DisplacedProblem & displaced_problem);
31 
33 
34  virtual void onNode(NodeRange::const_iterator & nd) override;
35 
36  void join(const UpdateDisplacedMeshThread & /*y*/);
37 
38 protected:
39  void init();
40 
43  const std::vector<const NumericVector<Number> *> & _nl_soln;
45 
46  // Solution vectors with expanded ghosting, for ReplicatedMesh or
47  // for DistributedMesh cases where the standard algebraic ghosting
48  // doesn't reach as far as the geometric ghosting
49  std::map<unsigned int,
50  std::pair<const NumericVector<Number> *, std::shared_ptr<NumericVector<Number>>>>
52 
53 private:
54  std::map<unsigned int, std::pair<std::vector<unsigned int>, std::vector<unsigned int>>>
56 };
std::map< unsigned int, std::pair< std::vector< unsigned int >, std::vector< unsigned int > > > _sys_to_var_num_and_direction
const std::vector< const NumericVector< Number > * > & _nl_soln
void join(const UpdateDisplacedMeshThread &)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
const NumericVector< Number > & _aux_soln
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
UpdateDisplacedMeshThread(FEProblemBase &fe_problem, DisplacedProblem &displaced_problem)
tbb::split split
virtual void onNode(NodeRange::const_iterator &nd) override
Called for each node.
std::map< unsigned int, std::pair< const NumericVector< Number > *, std::shared_ptr< NumericVector< Number > > > > _sys_to_nonghost_and_ghost_soln
void ErrorVector unsigned int