adamantine
material_deposition.hh
Go to the documentation of this file.
1 /* SPDX-FileCopyrightText: Copyright (c) 2021 - 2026, 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 <Geometry.hh>
9 #include <HeatSource.hh>
10 
11 #include <deal.II/base/bounding_box.h>
12 #include <deal.II/dofs/dof_handler.h>
13 
14 #include <boost/property_tree/ptree.hpp>
15 
16 namespace adamantine
17 {
22 template <int dim>
23 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
24  std::vector<double>, std::vector<double>>
26  boost::property_tree::ptree const &geometry_database,
27  std::vector<std::shared_ptr<HeatSource<dim>>> &heat_sources);
33 template <int dim>
34 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
35  std::vector<double>, std::vector<double>>
36 read_material_deposition(boost::property_tree::ptree const &geometry_database);
41 template <int dim>
42 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
43  std::vector<double>, std::vector<double>>
44 deposition_along_scan_path(boost::property_tree::ptree const &geometry_database,
45  ScanPath const &scan_path);
51 template <int dim>
52 std::tuple<std::vector<dealii::BoundingBox<dim>>, std::vector<double>,
53  std::vector<double>, std::vector<double>>
55  std::vector<std::tuple<std::vector<dealii::BoundingBox<dim>>,
56  std::vector<double>, std::vector<double>,
57  std::vector<double>>> const &bounding_box_lists);
61 template <int dim>
62 std::vector<std::vector<typename dealii::DoFHandler<dim>::active_cell_iterator>>
64  Geometry<dim> const &geometry, dealii::DoFHandler<dim> const &dof_handler,
65  std::vector<dealii::BoundingBox<dim>> const &material_deposition_boxes);
66 } // namespace adamantine
67 
68 #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([[maybe_unused]] Geometry< dim > const &geometry, dealii::DoFHandler< dim > const &dof_handler, std::vector< dealii::BoundingBox< dim >> const &material_deposition_boxes)