19#ifndef meshMovement_H_
20#define meshMovement_H_
41 const MPI_Comm & mpi_comm_domain,
56 void init(dealii::Triangulation<3, 3> & triangulation,
57 dealii::Triangulation<3, 3> & serialTriangulation,
58 const std::vector<std::vector<double>> &domainBoundingVectors);
66 initMoved(
const std::vector<std::vector<double>> &domainBoundingVectors);
80 const std::vector<dealii::Point<3>> &destinationPoints,
81 std::vector<dealii::Point<3>> &closestTriaVertexToDestPointsLocation,
82 std::vector<dealii::Tensor<1, 3, double>>
83 &dispClosestTriaVerticesToDestPoints);
106 std::pair<bool, double>
120 dealii::parallel::distributed::Triangulation<3> *
d_triaPtr;
125 std::vector<dealii::GridTools::PeriodicFacePair<
126 typename dealii::DoFHandler<3>::cell_iterator>>
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:35
MPI_Comm mpi_communicator
Definition meshMovement.h:134
std::vector< std::vector< double > > d_domainBoundingVectors
Definition meshMovement.h:128
dealii::AffineConstraints< double > d_constraintsMoveMesh
Definition meshMovement.h:124
distributedCPUVec< double > d_incrementalDisplacement
vector of displacements of the triangulation vertices
Definition meshMovement.h:113
dealii::FESystem< 3 > FEMoveMesh
Definition meshMovement.h:118
meshMovementClass(const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const dftParameters &dftParams)
Constructor.
void initMoved(const std::vector< std::vector< double > > &domainBoundingVectors)
Re-initializes the required data-structures for a given triangulation.
dealii::IndexSet d_locally_relevant_dofs
Definition meshMovement.h:123
void findClosestVerticesToDestinationPoints(const std::vector< dealii::Point< 3 > > &destinationPoints, std::vector< dealii::Point< 3 > > &closestTriaVertexToDestPointsLocation, std::vector< dealii::Tensor< 1, 3, double > > &dispClosestTriaVerticesToDestPoints)
Finds the closest triangulation vertices to a given vector of position coordinates.
const unsigned int this_mpi_process
Definition meshMovement.h:135
void updateTriangulationVertices()
Function which updates the locally relevant triangulation vertices.
std::pair< bool, double > movedMeshCheck()
void init(dealii::Triangulation< 3, 3 > &triangulation, dealii::Triangulation< 3, 3 > &serialTriangulation, const std::vector< std::vector< double > > &domainBoundingVectors)
Initializes the required data-structures for a given triangulation.
dealii::ConditionalOStream pcout
Definition meshMovement.h:136
dealii::IndexSet d_locally_owned_dofs
Definition meshMovement.h:122
void moveSubdividedMesh()
Function which moves subdivided mesh.
std::vector< dealii::GridTools::PeriodicFacePair< typename dealii::DoFHandler< 3 >::cell_iterator > > d_periodicity_vector
Definition meshMovement.h:127
void finalizeIncrementField()
void initIncrementField()
Initializes the parallel layout of d_incrementalDisplacementParallel.
dealii::DoFHandler< 3 > d_dofHandlerMoveMesh
Definition meshMovement.h:119
virtual ~meshMovementClass()
Definition meshMovement.h:44
bool d_isParallelMesh
Definition meshMovement.h:115
dealii::parallel::distributed::Triangulation< 3 > * d_triaPtr
Definition meshMovement.h:120
MPI_Comm d_mpiCommParent
Definition meshMovement.h:133
const dftParameters & d_dftParams
Definition meshMovement.h:130
dealii::Triangulation< 3, 3 > * d_triaPtrSerial
Definition meshMovement.h:121
Definition pseudoPotentialToDftfeConverter.cc:34
dealii::LinearAlgebra::distributed::Vector< elem_type, dealii::MemorySpace::Host > distributedCPUVec
Definition headers.h:92