Tatooine
Using Tatooine externally

Example

Using tatooine with CMake from another project is fairly simple. Use some CMake script like this to be able to use tatooine in your code:

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(tatooine_application)
find_package(tatooine REQUIRED)
add_executable(doublegyre doublegyre.cpp)
target_link_libraries(doublegyre PUBLIC tatooine::fields tatooine::rendering)

Now you can use the rendering interface in your code:

rendering.cpp:

//==============================================================================
using namespace tatooine;
//==============================================================================
auto main() -> int {
auto g = rectilinear_grid{linspace{0.0, 2.0, 200}, linspace{0.0, 1.0, 100}};
auto dg_len = squared_euclidean_length(dg);
g.sample_to_vertex_property([&](auto const x) { return dg_len(x, 0); },
"dg_len");
rendering::interactive::show(isolines(dg_len, g, 0.05),
isolines(dg_len, g, 0.01), g);
}
Definition: rectilinear_grid.h:38
Definition: algorithm.h:6
constexpr auto squared_euclidean_length(base_tensor< Tensor, T, N > const &t_in)
Definition: length.h:7
auto isolines(invocable< std::size_t, std::size_t, Vec2< typename rectilinear_grid< XDomain, YDomain >::real_type > > auto &&get_scalars, rectilinear_grid< XDomain, YDomain > const &g, arithmetic auto const isolevel)
Indexing and lookup map from http://paulbourke.net/geometry/polygonise/.
Definition: isolines.h:24
Double Gyre dataset.
Definition: doublegyre.h:12
Definition: linspace.h:26

This program creates a window which shows something like this:

Interfaces