Obtiene las coordenadas espaciales para un índice de malla plano dado.
60 {
62 throw std::out_of_range("El índice de la malla está fuera de rango.");
63 }
64
65 std::vector<double> coords(dim_);
66 size_t temp_index = index;
67
68 if (dim_ == 1) {
69 coords[0] = origin_[0] + static_cast<double>(index) * spacing_[0];
70 } else if (dim_ == 2) {
71 size_t nx = shape_[0];
72 size_t ix = temp_index % nx;
73 size_t iy = temp_index / nx;
74 coords[0] = origin_[0] + static_cast<double>(ix) * spacing_[0];
75 coords[1] = origin_[1] + static_cast<double>(iy) * spacing_[1];
76 } else if (dim_ == 3) {
77 size_t nx = shape_[0];
78 size_t ny = shape_[1];
79 size_t ix = temp_index % nx;
80 size_t iy = (temp_index / nx) % ny;
81 size_t iz = temp_index / (nx * ny);
82 coords[0] = origin_[0] + static_cast<double>(ix) * spacing_[0];
83 coords[1] = origin_[1] + static_cast<double>(iy) * spacing_[1];
84 coords[2] = origin_[2] + static_cast<double>(iz) * spacing_[2];
85 }
86 return coords;
87 }
size_t get_total_points() const
Calcula el número total de puntos en la malla.
Definition Grid.h:47