3#include <deal.II/base/point.h>
4#include <deal.II/lac/vector.h>
6#include <geogram/basic/common.h>
7#include <geogram/basic/logger.h>
8#include <geogram/basic/command_line.h>
9#include <geogram/basic/command_line_args.h>
10#include <geogram/basic/stopwatch.h>
11#include <geogram/basic/file_system.h>
12#include <geogram/basic/process.h>
13#include <geogram/basic/progress.h>
14#include <geogram/mesh/mesh.h>
15#include <geogram/mesh/mesh_io.h>
16#include <geogram/mesh/mesh_tetrahedralize.h>
17#include <geogram/voronoi/CVT.h>
18#include <exploragram/optimal_transport/optimal_transport_3d.h>
19#include <exploragram/optimal_transport/sampling.h>
30 class OptimalTransportMap3d;
67 bool set_target_points(
const std::string& filename,
const std::string& io_coding);
75 double epsilon = 0.01);
103 const std::string& points_file,
104 const std::string& io_coding =
"txt")
const;
Class to handle exact semi-discrete optimal transport using Geogram.
std::vector< double > get_potential() const
Get computed potential.
ExactSot(const ExactSot &)=delete
std::vector< dealii::Point< 3 > > target_points
bool set_source_mesh(const std::string &filename)
Set source mesh from file.
bool save_results(const std::string &potential_file, const std::string &points_file, const std::string &io_coding="txt") const
Save computation results to files.
void set_parameters(unsigned int max_iterations=1000, double epsilon=0.01)
Set parameters for the solver.
GEO::vector< double > potential
bool set_target_points(const std::string &filename, const std::string &io_coding)
Set target points from file.
bool load_volume_mesh(const std::string &filename, GEO::Mesh &mesh)
unsigned int max_iterations_
bool run()
Run the exact SOT computation.
std::unique_ptr< GEO::Mesh > source_mesh
std::vector< dealii::Point< 3 > > get_target_points() const
Get target points.
ExactSot & operator=(const ExactSot &)=delete