PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
meshUtil.cpp File Reference
#include "meshUtil.h"
#include "util/io.h"
#include <stdexcept>
#include "mesh.h"
#include "fe/elemIncludes.h"
#include "fe/bMatrix.h"
#include "util/feElementDefs.h"
#include "util/parallelUtil.h"
#include "util/function.h"
#include <format>
#include <memory>
#include <taskflow/taskflow/taskflow.hpp>
#include <taskflow/taskflow/algorithm/for_each.hpp>
#include <cstdlib>
#include <iostream>
Include dependency graph for meshUtil.cpp:

Go to the source code of this file.

Namespaces

namespace  anonymous_namespace{meshUtil.cpp}
 
namespace  mesh
 Collection of methods and data related to finite element and mesh.
 

Functions

util::SymMatrix3 anonymous_namespace{meshUtil.cpp}::strainFromB (const fe::B &B, const std::vector< util::Point > &u)
 
void mesh::createUniformMesh (mesh::Mesh *mesh_p, size_t dim, std::pair< std::vector< double >, std::vector< double > > box, std::vector< size_t > nGrid)
 Creates uniform mesh for rectangle/cuboid domain.
 
void mesh::removeNodesInBoxes (mesh::Mesh *mesh_p, const std::vector< std::vector< double > > &boxes)
 Removes nodes lying inside any of the given axis-aligned boxes.
 
void mesh::getCurrentQuadPoints (const mesh::Mesh *mesh_p, const std::vector< util::Point > &xRef, const std::vector< util::Point > &u, std::vector< util::Point > &xQuadCur, size_t iNodeStart=0, size_t iQuadStart=0, size_t quadOrder=1)
 Get current location of quadrature points of elements in the mesh. This function expects mesh has element-node connectivity data.
 
void mesh::getStrainStress (const mesh::Mesh *mesh_p, const std::vector< util::Point > &xRef, const std::vector< util::Point > &u, bool isPlaneStrain, std::vector< util::SymMatrix3 > &strain, std::vector< util::SymMatrix3 > &stress, size_t iNodeStart=0, size_t iStrainStart=0, double nu=0., double lambda=0., double mu=0., bool computeStress=false, size_t quadOrder=1)
 Strain and stress at quadrature points in the mesh.
 
void mesh::getMaxShearStressAndLoc (const mesh::Mesh *mesh_p, const std::vector< util::Point > &xRef, const std::vector< util::Point > &u, const std::vector< util::SymMatrix3 > &stress, double &maxShearStress, util::Point &maxShearStressLocRef, util::Point &maxShearStressLocCur, size_t iNodeStart=0, size_t iStrainStart=0, size_t quadOrder=1)
 Get location where maximum of specified component of stress occurs in this particle.