39#include "MR_rect_tree.hpp"
40#include "MR_cell_cplx.hpp"
41#include "MR_rt_to_cc.hpp"
44typedef mjr::tree15b3d3rT tt_t;
45typedef mjr::MRccT5 cc_t;
46typedef mjr::MR_rt_to_cc<tt_t, cc_t> tc_t;
49tt_t::rrpt_t vf(tt_t::drpt_t xvec) {
64 tt_t vftree({-30.0, -30.0, -0.0},
69 vftree.refine_grid(5, vf);
72 tc_t::construct_geometry_rects(vfccplx,
75 {{tc_t::val_src_spc_t::FDOMAIN, 0},
76 {tc_t::val_src_spc_t::FDOMAIN, 1},
77 {tc_t::val_src_spc_t::FDOMAIN, 2}});
79 vfccplx.create_named_datasets({
"x",
"y",
"z"},
82 vfccplx.write_xml_vtk(
"vector_field_3d-f.vtu",
"vector_field_3d-f");
87 int max_steps = 100000;
97 auto p_old = cvccplx.add_node({x_old, y_old, z_old, t});
98 for(
int num_steps=0;num_steps<max_steps;num_steps++) {
99 double x_new = x_old + a*(y_old-x_old)*delta;
100 double y_new = y_old + (x_old*(b-z_old)-y_old)*delta;
101 double z_new = z_old + (x_old*y_old-c*z_old)*delta;
103 auto p_new = cvccplx.add_node({x_new, y_new, z_new, t});
104 cvccplx.add_cell(cc_t::cell_kind_t::SEGMENT, {p_old, p_new});
111 cvccplx.dump_cplx(5);
112 cvccplx.write_xml_vtk(
"vector_field_3d-c.vtu",
"vector_field_3d-c");