adamantine
material_deposition.hh
Go to the documentation of this file.
1 /* SPDX-FileCopyrightText: Copyright (c) 2021 - 2024, the adamantine authors.
2  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3  */
4 
5 #ifndef MATERIAL_DEPOSITION_HH
6 #define MATERIAL_DEPOSITION_HH
7 
8 #include <HeatSource.hh>
9 
10 #include <deal.II/base/bounding_box.h>
11 #include <deal.II/dofs/dof_handler.h>
12 
13 #include <boost/property_tree/ptree.hpp>
14 
15 namespace adamantine
16 {
21 template <int dim>
22 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
23  std::vector<double>, std::vector<double>>
25  boost::property_tree::ptree const &geometry_database,
26  std::vector<std::shared_ptr<HeatSource<dim>>> &heat_sources);
32 template <int dim>
33 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
34  std::vector<double>, std::vector<double>>
35 read_material_deposition(boost::property_tree::ptree const &geometry_database);
40 template <int dim>
41 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
42  std::vector<double>, std::vector<double>>
43 deposition_along_scan_path(boost::property_tree::ptree const &geometry_database,
44  ScanPath const &scan_path);
50 template <int dim>
51 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
52  std::vector<double>, std::vector<double>>
54  std::vector<std::tuple<std::vector<dealii::BoundingBox<dim>>,
55  std::vector<double>, std::vector<double>,
56  std::vector<double>>> const &bounding_box_lists);
60 template <int dim>
61 std::vector<std::vector<typename dealii::DoFHandler<dim>::active_cell_iterator>>
63  dealii::DoFHandler<dim> const &dof_handler,
64  std::vector<dealii::BoundingBox<dim>> const &material_deposition_boxes);
65 } // namespace adamantine
66 
67 #endif
std::tuple< std::vector< dealii::BoundingBox< dim > >, std::vector< double >, std::vector< double >, std::vector< double > > deposition_along_scan_path(boost::property_tree::ptree const &geometry_database, ScanPath const &scan_path)
std::tuple< std::vector< dealii::BoundingBox< dim > >, std::vector< double >, std::vector< double >, std::vector< double > > create_material_deposition_boxes(boost::property_tree::ptree const &geometry_database, std::vector< std::shared_ptr< HeatSource< dim >>> &heat_sources)
std::tuple< std::vector< dealii::BoundingBox< dim > >, std::vector< double >, std::vector< double >, std::vector< double > > merge_deposition_paths(std::vector< std::tuple< std::vector< dealii::BoundingBox< dim >>, std::vector< double >, std::vector< double >, std::vector< double >>> const &deposition_paths)
std::tuple< std::vector< dealii::BoundingBox< dim > >, std::vector< double >, std::vector< double >, std::vector< double > > read_material_deposition(boost::property_tree::ptree const &geometry_database)
std::vector< std::vector< typename dealii::DoFHandler< dim >::active_cell_iterator > > get_elements_to_activate(dealii::DoFHandler< dim > const &dof_handler, std::vector< dealii::BoundingBox< dim >> const &material_deposition_boxes)