NetDEM v1.0
Loading...
Searching...
No Matches
tetmesh_splittor.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "domain_splittor.hpp"
4#include "tetmesh.hpp"
5#include <iostream>
6#include <string>
7
8namespace netdem {
9
18public:
23
28
41 void InitFromSTL(STLModel const &stl_model, int num_ele_each) override;
42
52 void GetPeriDigmNodes(VecXT<Vec3d> *const nodes,
53 VecXT<double> *const node_vols) override;
54
64 void MakePorosity(double porosity) override;
65
73 STLModel GetSTLModel() override;
74
87 STLModel GetSTLModel(const VecXT<int> &tet_indices) override;
88};
89
90} // namespace netdem
An abstract base class for domain splitters used in discrete element method simulations.
Definition domain_splittor.hpp:17
Class for working with STL models.
Definition stl_model.hpp:17
A class that represents a tetrahedral mesh.
Definition tetmesh.hpp:17
A class representing a domain splitter for tetrahedral meshes.
Definition tetmesh_splittor.hpp:17
TetMeshSplittor()
Constructs a new TetMeshSplittor object.
Definition tetmesh_splittor.cpp:13
void MakePorosity(double porosity) override
Makes the mesh porous by removing a specified fraction of the tetrahedra.
Definition tetmesh_splittor.cpp:43
STLModel GetSTLModel() override
Gets the STL model for the splitter.
Definition tetmesh_splittor.cpp:81
void InitFromSTL(STLModel const &stl_model, int num_ele_each) override
Initializes the splitter from an STL model and a requested number of elements per tetrahedron.
Definition tetmesh_splittor.cpp:15
TetMesh tetmesh
The tetrahedral mesh used by the splitter.
Definition tetmesh_splittor.hpp:22
void GetPeriDigmNodes(VecXT< Vec3d > *const nodes, VecXT< double > *const node_vols) override
Gets the nodes and node volumes for the Peridigm simulation.
Definition tetmesh_splittor.cpp:21
Definition bond_entry.hpp:7
std::vector< T > VecXT
Definition utils_macros.hpp:31