include/meltpooldg/utilities/generate_points_along_vector.hpp Source File

Developer Documentation: include/meltpooldg/utilities/generate_points_along_vector.hpp Source File
Developer Documentation
generate_points_along_vector.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/point.h>
4
5#include <vector>
6
7
9{
16 template <int dim, typename vector, typename number>
17 void
18 generate_points_along_vector(std::vector<dealii::Point<dim>> &points_normal_to_interface,
19 const dealii::Point<dim> &starting_point,
20 const vector &unit_vec,
21 const number max_distance_per_side,
22 const unsigned int n_inc_per_side,
23 const bool bidirectional = true)
24 {
25 const number step = max_distance_per_side / n_inc_per_side;
26 for (int n = n_inc_per_side; n >= 0; --n)
27 points_normal_to_interface.emplace_back(starting_point + unit_vec * n * step);
28 if (bidirectional)
29 {
30 for (unsigned int n = 1; n <= n_inc_per_side; ++n)
31 points_normal_to_interface.emplace_back(starting_point - unit_vec * n * step);
32 }
33 }
34} // namespace MeltPoolDG::Utility
Definition generate_points_along_vector.hpp:9
void generate_points_along_vector(std::vector< dealii::Point< dim > > &points_normal_to_interface, const dealii::Point< dim > &starting_point, const vector &unit_vec, const number max_distance_per_side, const unsigned int n_inc_per_side, const bool bidirectional=true)
Definition generate_points_along_vector.hpp:18