7#include <hodge_laplacian_experiment.h>
13int main(
int argc,
char *argv[]) {
14 if (argc != 4 && argc != 5) {
15 std::cerr <<
"Usage: " << argv[0]
16 <<
" max_refinement_level min_k max_k step=0.1 " << std::endl;
23 const unsigned refinement_level = atoi(argv[1]);
24 sscanf(argv[2],
"%lf", &min_k);
25 sscanf(argv[3],
"%lf", &max_k);
26 if (argc == 5) sscanf(argv[4],
"%lf", &step);
27 std::cout <<
"max_refinement_level : " << refinement_level << std::endl;
28 std::cout <<
"min_k : " << min_k <<
", max_k = " << max_k
29 <<
" step = " << step << std::endl;
34 std::vector<unsigned> refinement_levels(refinement_level + 1);
35 for (
int i = 0; i < refinement_level + 1; i++) {
36 refinement_levels[i] = i;
39 std::vector<double> ks;
40 for (
double i = min_k; i <= max_k; i += step) {
45 auto f_zero = [&](
const Eigen::Vector3d &x_vec) ->
double {
return 0; };
48 auto f_one = [&](
const Eigen::Vector3d &x_vec) -> Eigen::VectorXd {
49 Eigen::VectorXd ret(3);
55 auto u_zero = [&](
const Eigen::Vector3d &x_vec) ->
double {
return 0; };
58 auto u_one = [&](
const Eigen::Vector3d &x_vec) -> Eigen::Vector3d {
59 Eigen::VectorXd ret(3);
66 experiment(u_zero, u_one, u_zero, f_zero, f_one, f_zero, k,
"zero");
68 experiment.Compute(refinement_levels, ks);
Creates and solves the discretised Hodge Laplacian source problems for a given list of levels and val...