Commit 814ae300 authored by p7k's avatar p7k

Add std::string save_directory() to set preferred file save path at compile time in IO.hpp

Fixed CMakeLists.txt previously using MPI_C_LIBRARIES to link against MPI_CXX_LIBRARIES

Add optional arguments to build.sh

Add eos.sh to prepare default environment for compiling on Eos
parent 805a374d
......@@ -6,7 +6,7 @@ find_package(OpenMP REQUIRED)
find_package(Boost REQUIRED)
find_package(MPI REQUIRED)
include_directories(${MPI_INCLUDE_PATH})
include_directories(SYSTEM ${MPI_CXX_INCLUDE_PATH})
include_directories(./lib/)
include_directories(./lib/Eigen/)
include_directories(./lib/GoogleTest/googletest/include/gtest/)
......@@ -19,6 +19,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
add_subdirectory(./lib/)
include_directories(./src/)
include_directories(./src/IO/include/)
include_directories(./src/Geometry/include/)
include_directories(./src/Sketch/include/)
include_directories(./src/Mesh/include/)
......
project(Oersted_Apps)
set(OERSTED_LIBRARIES
io
geometry
sketch
elements
......@@ -11,7 +12,7 @@ set(OERSTED_LIBRARIES
physics
model_templates
stdc++fs
${MPI_C_LIBRARIES}
${MPI_CXX_LIBRARIES}
)
add_subdirectory(./Switched\ Winding\ Synchrel)
\ No newline at end of file
#include "designspace.h"
#include "globalobjective.h"
#include "model.h"
#include "IO.hpp"
#define SUB_DIR "./output/"
#define SAVE_DIR save_directory() + "/Oersted/output/"
int main(int argc, char** argv) {
MPI_Init(NULL,NULL);
......@@ -26,10 +27,10 @@ int main(int argc, char** argv) {
std::function<ObjectiveMap(Particle)> go = global_objective();
Swarm swarm{ds,go,swarm_size,objective_tolerance,maximum_iterations,std::greater<double_t>(),global_objective_keys()};
Swarm swarm{ds,go,swarm_size,objective_tolerance,maximum_iterations,global_objective_keys(),std::greater<double_t>()};
if (rank == 0) {
swarm.set_output_file(SUB_DIR,"sws");
swarm.set_output_file(SAVE_DIR,"sws");
}
double_t dw{1.0/(N-1.0)};
......
#!/usr/bin/env bash
# TODO: use variable to read in default save directory
#default arguments
CMAKE=cmake
SAVEDIR=$HOME
#parse command line arguments
while getopts ":c:d:" opt; do
case "$opt" in
c) CMAKE=$OPTARG;;
d) SAVEDIR=$OPTARG;;
esac
done
mkdir -p build
cd build
export CXX="${CXX:mpic++}"
export CXXFLAGS="$CXXFLAGS -DSAVEDIR=$SAVEDIR"
export CXXFLAGS="$CXXFLAGS -DSAVEDIR=$MEMBERWORK/phy119"
cmake ..
$CMAKE ..
make
......
#!/usr/bin/env bash
module unload PrgEnv-intel PrgEnv-gnu PrgEnv-pgi PrgEnv-cray
module load PrgEnv-gnu
module swap gcc gcc/7.2.0
module load cmake3
\ No newline at end of file
include_directories(./IO/)
include_directories(./Geometry/)
include_directories(./Sketch/)
include_directories(./Mesh/)
......@@ -9,6 +10,7 @@ include_directories(./Optimization/)
include_directories(./Physics/)
include_directories(./Model\ Templates/)
add_subdirectory(./IO/)
add_subdirectory(./Geometry/)
add_subdirectory(./Sketch/)
add_subdirectory(./Mesh/)
......
......@@ -7,7 +7,8 @@ set(SOURCE_FILES
./src/Node.cpp ./src/Node.h
./src/Point.cpp ./src/Point.h
./src/Element.cpp ./src/Element.h
./src/Facet.cpp ./src/Facet.h)
./src/Facet.cpp ./src/Facet.h
)
add_library(elements STATIC ${SOURCE_FILES})
......
PROJECT(Oersted_IO)
set(SOURCE_FILES
./include/IO.hpp
./src/SaveDirectory.h ./src/SaveDirectory.cpp)
add_library(io STATIC ${SOURCE_FILES})
target_link_libraries(io)
\ No newline at end of file
#ifndef OERSTED_IO_HPP
#define OERSTED_IO_HPP
#include "../src/SaveDirectory.h"
#endif //OERSTED_IO_HPP
#include "SaveDirectory.h"
std::string save_directory() {
#ifndef SAVEDIR
return std::string(std::getenv("HOME"));
#else
#define STRINGIFY(x) #x
#define TO_STRING(x) STRINGIFY(x)
return std::string(TO_STRING(SAVEDIR));
#endif
}
\ No newline at end of file
#ifndef OERSTED_SAVEDIRECTORY_H
#define OERSTED_SAVEDIRECTORY_H
#include <string>
#include <cstdlib>
std::string save_directory();
#endif //OERSTED_SAVEDIRECTORY_H
......@@ -937,11 +937,6 @@ void Mesh::save_as(std::string path, std::string file_name) const {
/*
This is a stub for visualization
*/
std::string home(std::getenv("HOME"));
path = home + path;
if (!std::experimental::filesystem::exists(path)) {
std::experimental::filesystem::create_directories(path);
}
......
......@@ -46,9 +46,6 @@ void Swarm::run() {
}
void Swarm::set_output_file(std::string path, std::string file_name) {
std::string home(std::getenv("HOME"));
path = home + path;
if (!std::experimental::filesystem::exists(path)) {
std::experimental::filesystem::create_directories(path);
}
......
......@@ -8,7 +8,7 @@
class Swarm {
public:
Swarm(CoordinateSpace ss, std::function<ObjectiveMap(Particle)> go, size_t Np, double_t otol, size_t maxit, std::function<bool(double_t,double_t)> comp = std::less<double_t>(), std::vector<std::string> go_keys = {}) : Space{ss}, GlobalObjective{go}, ObjectiveTolerance{otol}, MaximumIterations{maxit}, Comparator{comp} {
Swarm(CoordinateSpace ss, std::function<ObjectiveMap(Particle)> go, size_t Np, double_t otol, size_t maxit, std::vector<std::string> go_keys, std::function<bool(double_t,double_t)> comp = std::less<double_t>()) : Space{ss}, GlobalObjective{go}, ObjectiveTolerance{otol}, MaximumIterations{maxit}, Comparator{comp} {
std::random_device rd;
RNG = std::mt19937{rd()};
......
......@@ -272,9 +272,6 @@ std::vector<std::shared_ptr<DiscreteBoundary>> FiniteElementMesh<P, Q>::make_dis
template<size_t P, size_t Q>
void FiniteElementMesh<P, Q>::write_scalar(Oe::VectorXd const &v, std::string path, std::string file_name) const {
std::string home(std::getenv("HOME"));
path = home + path;
if (!std::experimental::filesystem::exists(path)) {
std::experimental::filesystem::create_directories(path);
}
......@@ -318,9 +315,6 @@ void FiniteElementMesh<P, Q>::write_scalar(Oe::VectorXd const &v, std::string pa
template<size_t P, size_t Q>
void FiniteElementMesh<P, Q>::write_vector(Oe::ArrayXd const &Fx, Oe::ArrayXd const &Fy, std::string path, std::string file_name) const {
std::string home(std::getenv("HOME"));
path = home + path;
if (!std::experimental::filesystem::exists(path)) {
std::experimental::filesystem::create_directories(path);
}
......
......@@ -189,9 +189,6 @@ void Sketch::save_as<SaveMethod::Rasterize>(std::string path, std::string file_n
This is a stub for visualization
*/
std::string home(std::getenv("HOME"));
path = home + path;
if (!std::experimental::filesystem::exists(path)) {
std::experimental::filesystem::create_directories(path);
}
......
......@@ -59,6 +59,7 @@ set(MPI_SOURCE_FILES
set(LINK_LIBRARIES
gtest
gtest_main
io
geometry
sketch
elements
......@@ -69,7 +70,7 @@ set(LINK_LIBRARIES
physics
model_templates
stdc++fs
${MPI_C_LIBRARIES}
${MPI_CXX_LIBRARIES}
)
add_executable(run_tests ${SOURCE_FILES})
......
......@@ -3,6 +3,7 @@
#include "gtest.h"
#include "IO.hpp"
#include "Sketch.hpp"
#include "Mesh.hpp"
#include "Quadrature.hpp"
......
#include "Library_Integration_Test.hpp"
#define SUB_DIR std::string("/Oersted/test/output/Integration/")
#define SAVE_DIR save_directory()+"/Oersted/test/output/Integration/"
TEST(Full_Circle, Magnetostatic_Uniform_Current_Density) {
// Create Sketch
......@@ -28,7 +28,7 @@ TEST(Full_Circle, Magnetostatic_Uniform_Current_Density) {
EXPECT_EQ(sk.size_contours(), 1);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, std::string("full_circle_sketch"));
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, std::string("full_circle_sketch"));
// Create Refineable Mesh
Mesh me{sk};
......@@ -40,7 +40,7 @@ TEST(Full_Circle, Magnetostatic_Uniform_Current_Density) {
me.refine();
me.save_as(SUB_DIR, std::string("full_circle_mesh"));
me.save_as(SAVE_DIR, std::string("full_circle_mesh"));
// Convert to FiniteElementMesh
auto fem = std::make_shared<FiniteElementMesh<1,1>>(me);
......@@ -102,7 +102,7 @@ TEST(Full_Circle, Magnetostatic_Uniform_Current_Density) {
// Save
Eigen::VectorXd vv = msph.recover_boundary(solution->v);
fem->write_scalar(vv, SUB_DIR, std::string("full_circle_magnetostatic_uniform_current_density"));
fem->write_scalar(vv, SAVE_DIR, std::string("full_circle_magnetostatic_uniform_current_density"));
// Test
msph.linearize(solution);
......@@ -180,7 +180,7 @@ public:
bool result = sk.build();
ASSERT_TRUE(result);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, "sixth_circle_mirror_copy_sketch");
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, "sixth_circle_mirror_copy_sketch");
periodic_boundary = sk.select_periodic_boundary_pairs(v0, 60.0);
{
......@@ -255,7 +255,7 @@ public:
bool result = me.refine();
ASSERT_TRUE(result);
me.save_as(SUB_DIR, std::string("sixth_circle_mirror_copy_mesh"));
me.save_as(SAVE_DIR, std::string("sixth_circle_mirror_copy_mesh"));
// Create FiniteElementMesh
fem = std::make_shared<FiniteElementMesh<1, 1>>(me);
......@@ -361,7 +361,7 @@ TEST_F(Sixth_Circle_Mirror_Copy, Magnetostatic_Uniform_Current_Density_Periodic)
// A = a_f * r^2 + c_f in forced inner region
// A = a_h * log(r) + c_h in homogeneous outer region
Eigen::VectorXd vv = msph.recover_boundary(solution->v);
fem->write_scalar(vv, SUB_DIR, std::string("sixth_circle_uniform_current_density_periodic"));
fem->write_scalar(vv, SAVE_DIR, std::string("sixth_circle_uniform_current_density_periodic"));
double_t a_f = -0.5;
double_t c_f = -2.0 * a_f * std::log(2.0) - a_f;
......@@ -455,7 +455,7 @@ TEST_F(Sixth_Circle_Mirror_Copy, Magnetostatic_Uniform_Current_Density_Antieriod
// Bounds are obtained from the Fourier series approximation of the square wave current density
Eigen::VectorXd vv = msph.recover_boundary(solution->v);
fem->write_scalar(vv, SUB_DIR, std::string("sixth_circle_uniform_current_density_antiperiodic"));
fem->write_scalar(vv, SAVE_DIR, std::string("sixth_circle_uniform_current_density_antiperiodic"));
double_t a_f = -2.0 / (5.0);
double_t b_f = -384.0 / 321.0 * a_f;
......@@ -522,7 +522,7 @@ public:
bool result = sk.build();
ASSERT_TRUE(result);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, "sixth_circle_sketch");
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, "sixth_circle_sketch");
periodic_boundary = sk.select_periodic_boundary_pairs(v0, 60.0);
{
......@@ -597,7 +597,7 @@ public:
bool result = me.refine();
ASSERT_TRUE(result);
me.save_as(SUB_DIR, std::string("sixth_circle_mesh"));
me.save_as(SAVE_DIR, std::string("sixth_circle_mesh"));
// Create FiniteElementMesh
fem = std::make_shared<FiniteElementMesh<1, 1>>(me);
......@@ -724,7 +724,7 @@ TEST_F(Sixth_Circle, Magnetostatic_Uniform_Current_Density_Periodic_Rotation) {
// A = a_f * r^2 + c_f in forced inner region
// A = a_h * log(r) + c_h in homogeneous outer region
Eigen::VectorXd vv = msph.recover_boundary(solution->v);
fem->write_scalar(vv, SUB_DIR, std::string("one_sixth_circle_uniform_current_density_periodic_rotation_") + std::to_string(iter));
fem->write_scalar(vv, SAVE_DIR, std::string("one_sixth_circle_uniform_current_density_periodic_rotation_") + std::to_string(iter));
double_t a_f = -0.5;
double_t c_f = -2.0 * a_f * std::log(2.0) - a_f;
......@@ -826,7 +826,7 @@ TEST_F(Sixth_Circle, Magnetostatic_Uniform_Current_Density_Antiperiodic_Rotation
// Bounds are obtained from the Fourier series approximation of the square wave current density
Eigen::VectorXd vv = msph.recover_boundary(solution->v);
fem->write_scalar(vv, SUB_DIR, std::string("sixth_circle_uniform_current_density_antiperiodic_") + std::to_string(iter));
fem->write_scalar(vv, SAVE_DIR, std::string("sixth_circle_uniform_current_density_antiperiodic_") + std::to_string(iter));
double_t a_f = -2.0 / (5.0);
double_t b_f = -384.0 / 321.0 * a_f;
......@@ -997,7 +997,7 @@ public:
residual = sk.solve();
EXPECT_LE(residual, FLT_EPSILON * rro);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, std::string("salient_pole_synchrel_sketch"));
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, std::string("salient_pole_synchrel_sketch"));
bool result = sk.build();
EXPECT_TRUE(result);
......@@ -1024,7 +1024,7 @@ public:
EXPECT_TRUE(me.edges_are_valid());
EXPECT_TRUE(me.edges_are_optimal());
me.save_as(SUB_DIR, std::string("salient_pole_synchrel_mesh"));
me.save_as(SAVE_DIR, std::string("salient_pole_synchrel_mesh"));
//me.MaximumElementSize = 5.0e-3;
me.MinimumElementQuality = 0.5;
......@@ -1032,7 +1032,7 @@ public:
// Refine and save
me.refine();
me.save_as(SUB_DIR, std::string("salient_pole_synchrel_mesh"));
me.save_as(SAVE_DIR, std::string("salient_pole_synchrel_mesh"));
// Create FiniteElementMesh
fem = std::make_shared<FiniteElementMesh<2, 2>>(me); // TODO: Look at speeding this up somehow, try row major sparse matrix operators, sparse vectors for evaluation of magnetization
......@@ -1176,11 +1176,11 @@ TEST_F(Salient_Pole_Synchrel, Test) {
// Save image
Eigen::VectorXd vv = msph->recover_boundary(solution->v);
fem->write_scalar(vv, SUB_DIR, std::string("salient_pole_syncrel_A_") + std::to_string(iter));
fem->write_scalar(vv, SAVE_DIR, std::string("salient_pole_syncrel_A_") + std::to_string(iter));
Eigen::ArrayXd Bx = msph->derivatives().dy(0).transpose() * solution->v;
Eigen::ArrayXd By = -msph->derivatives().dx(0).transpose() * solution->v;
fem->write_vector(Bx, By, SUB_DIR, std::string("salient_pole_synchrel_B_") + std::to_string(iter));
fem->write_vector(Bx, By, SAVE_DIR, std::string("salient_pole_synchrel_B_") + std::to_string(iter));
// Increment Position
*position += step;
......
......@@ -36,7 +36,7 @@ public:
bool result = sk.build();
ASSERT_TRUE(result);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, std::string("sketch"));
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, std::string("sketch"));
BoundingBall bi = BoundingBall{0.0,0.0,1.0+FLT_EPSILON};
BoundingBall bo = BoundingBall{0.0,0.0,2.0+FLT_EPSILON};
......@@ -64,10 +64,10 @@ public:
bool result = me.refine();
ASSERT_TRUE(result);
me.save_as(SUB_DIR, std::string("mesh"));
me.save_as(SAVE_DIR, std::string("mesh"));
}
std::string SUB_DIR = "/Oersted/output/Integration/test_Annuli/";
std::string SAVE_DIR = save_directory()+"/Oersted/output/Integration/test_Annuli/";
std::vector<std::shared_ptr<Curve>> inner_boundaries;
std::vector<std::shared_ptr<Curve>> outer_boundaries;
......
......@@ -25,7 +25,7 @@ public:
bool result = sk.build();
ASSERT_TRUE(result);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, std::string("sketch"));
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, std::string("sketch"));
}
void SetUp_Mesh() {
......@@ -40,12 +40,12 @@ public:
bool result = me.refine();
ASSERT_TRUE(result);
me.save_as(SUB_DIR, std::string("mesh"));
me.save_as(SAVE_DIR, std::string("mesh"));
circle_contour = me.select_contour(Point{0.0,0.0});
}
std::string SUB_DIR = "/Oersted/output/Integration/test_Circle/";
std::string SAVE_DIR = save_directory()+"/Oersted/output/Integration/test_Circle/";
std::vector<std::shared_ptr<Curve>> boundaries;
......
......@@ -32,7 +32,7 @@ public:
bool result = sk.build();
ASSERT_TRUE(result);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, std::string("sketch"));
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, std::string("sketch"));
BoundingBall bi = BoundingBall{0.0,0.0,1.0+FLT_EPSILON};
BoundingBall bo = BoundingBall{0.0,0.0,2.0+FLT_EPSILON};
......@@ -64,10 +64,10 @@ public:
bool result = me.refine();
ASSERT_TRUE(result);
me.save_as(SUB_DIR, std::string("mesh"));
me.save_as(SAVE_DIR, std::string("mesh"));
}
std::string SUB_DIR = "/Oersted/output/Integration/test_HalfAnnuli/";
std::string SAVE_DIR = save_directory()+"/Oersted/output/Integration/test_HalfAnnuli/";
std::shared_ptr<Vertex> origin;
......@@ -140,8 +140,8 @@ public:
auto v = ms->recover_boundary(sol->v);
auto f = ms->recover_boundary(sol->f);
fem->write_scalar(v, SUB_DIR, std::string("mihf") + std::to_string(P) + std::to_string(Q));
fem->write_scalar(f, SUB_DIR, std::string("mihf_J_") + std::to_string(P) + std::to_string(Q));
fem->write_scalar(v, SAVE_DIR, std::string("mihf") + std::to_string(P) + std::to_string(Q));
fem->write_scalar(f, SAVE_DIR, std::string("mihf_J_") + std::to_string(P) + std::to_string(Q));
test_mihf_solution(v, tol);
};
......@@ -260,8 +260,8 @@ public:
auto v = ms->recover_boundary(sol->v);
auto f = ms->recover_boundary(sol->f);
fem->write_scalar(v, SUB_DIR, std::string("mcsf") + std::to_string(P) + std::to_string(Q));
fem->write_scalar(f, SUB_DIR, std::string("mcsf_J_") + std::to_string(P) + std::to_string(Q));
fem->write_scalar(v, SAVE_DIR, std::string("mcsf") + std::to_string(P) + std::to_string(Q));
fem->write_scalar(f, SAVE_DIR, std::string("mcsf_J_") + std::to_string(P) + std::to_string(Q));
test_mcsf_solution(v, tol0, tol1, tol2, tolf);
};
......
......@@ -24,7 +24,7 @@ public:
bool result = sk.build();
ASSERT_TRUE(result);
sk.save_as<SaveMethod::Rasterize>(SUB_DIR, std::string("sketch"));
sk.save_as<SaveMethod::Rasterize>(SAVE_DIR, std::string("sketch"));
}
void SetUp_Mesh() {
......@@ -40,12 +40,12 @@ public:
bool result = me.refine();
ASSERT_TRUE(result);
me.save_as(SUB_DIR, std::string("mesh"));
me.save_as(SAVE_DIR, std::string("mesh"));
square_contour = me.select_contour(Point{0.5,0.5});
}
std::string SUB_DIR = "/Oersted/test/output/Integration/test_Square/";
std::string SAVE_DIR = save_directory()+"/Oersted/test/output/Integration/test_Square/";
std::vector<std::shared_ptr<Curve>> boundaries;
......
......@@ -21,7 +21,7 @@ TEST(Mesh, create_triangle_domain) {
Mesh m{s};
m.create();
m.save_as(SUB_DIR, test_name + "_mesh");
m.save_as(SAVE_DIR, test_name + "_mesh");
std::vector<size_t> vmap = map_verticies_to_points({v0, v1, v2}, m);
......@@ -86,7 +86,7 @@ TEST(Mesh, create_triangle_domain) {
m.MinimumElementSize = 0.01;
m.MinimumElementQuality = 0.1;
m.refine();
m.save_as(SUB_DIR, test_name + "_mesh_refine_algorithm");
m.save_as(SAVE_DIR, test_name + "_mesh_refine_algorithm");
}
TEST(Mesh, create_square_domain) {
......@@ -112,7 +112,7 @@ TEST(Mesh, create_square_domain) {
Mesh m{s};
m.create();
m.save_as(SUB_DIR, test_name + "_mesh");
m.save_as(SAVE_DIR, test_name + "_mesh");
// Test number of verticies, edges, triangles
std::vector<size_t> vmap = map_verticies_to_points({v0, v1, v2, v3}, m);
......@@ -172,7 +172,7 @@ TEST(Mesh, create_square_domain) {
m.MinimumElementSize = 0.01;
m.MinimumElementQuality = 0.1;
m.refine();
m.save_as(SUB_DIR, test_name + "_mesh_refine_algorithm");
m.save_as(SAVE_DIR, test_name + "_mesh_refine_algorithm");
}
TEST(Mesh, create_narrow_diamond_domain) {
......@@ -198,7 +198,7 @@ TEST(Mesh, create_narrow_diamond_domain) {
Mesh m{s};
m.create();
m.save_as(SUB_DIR, test_name + "_mesh");
m.save_as(SAVE_DIR, test_name + "_mesh");
// Test number of verticies, edges, triangles
EXPECT_TRUE(m.size_points() == 4);
......@@ -249,7 +249,7 @@ TEST(Mesh, create_narrow_diamond_domain) {
m.MinimumElementSize = 0.01;
m.MinimumElementQuality = 0.1;
m.refine();
m.save_as(SUB_DIR, test_name + "_mesh_refine_algorithm");
m.save_as(SAVE_DIR, test_name + "_mesh_refine_algorithm");
}
TEST(Mesh, create_narrow_rectangle_domain) {
......@@ -278,7 +278,7 @@ TEST(Mesh, create_narrow_rectangle_domain) {
Mesh m{s};
m.create();
m.save_as(SUB_DIR, test_name + "_mesh");
m.save_as(SAVE_DIR, test_name + "_mesh");
// Test number of verticies, edges, triangles
EXPECT_TRUE(m.size_points() == 6);
......@@ -320,7 +320,7 @@ TEST(Mesh, create_narrow_rectangle_domain) {
m.MinimumElementSize = 0.01;
m.MinimumElementQuality = 0.1;
m.refine();
m.save_as(SUB_DIR, test_name + "_mesh_refine_algorithm");
m.save_as(SAVE_DIR, test_name + "_mesh_refine_algorithm");
}
TEST(Mesh, create_half_circle_domain) {
......@@ -343,7 +343,7 @@ TEST(Mesh, create_half_circle_domain) {
Mesh m{s};
m.create();
m.save_as(SUB_DIR, test_name + "_mesh");
m.save_as(SAVE_DIR, test_name + "_mesh");
// Test number of verticies, edges, triangles
EXPECT_EQ(m.size_points(), 10);
......@@ -368,7 +368,7 @@ TEST(Mesh, create_half_circle_domain) {
m.MinimumElementSize = 0.01;
m.MinimumElementQuality = 0.1;
m.refine();
m.save_as(SUB_DIR, test_name + "_mesh_refine_algorithm");
m.save_as(SAVE_DIR, test_name + "_mesh_refine_algorithm");
}
TEST(Mesh, create_horseshoe_domain) {
......@@ -395,7 +395,7 @@ TEST(Mesh, create_horseshoe_domain) {
Mesh m{s};
m.create();
m.save_as(SUB_DIR, test_name + "_mesh");
m.save_as(SAVE_DIR, test_name + "_mesh");