41#include "MR_rect_tree.hpp"
42#include "MR_cell_cplx.hpp"
43#include "MR_rt_to_cc.hpp"
46typedef mjr::tree15b3d3rT tt_t;
47typedef mjr::MRccT5 cc_t;
48typedef mjr::MR_rt_to_cc<tt_t, cc_t> tc_t;
51tt_t::rrpt_t vf(tt_t::drpt_t xvec) {
66 tt_t vftree({-30.0, -30.0, -0.0},
71 vftree.refine_grid(5, vf);
74 tc_t::construct_geometry_rects(vfccplx,
77 {{tc_t::val_src_spc_t::FDOMAIN, 0},
78 {tc_t::val_src_spc_t::FDOMAIN, 1},
79 {tc_t::val_src_spc_t::FDOMAIN, 2}});
81 vfccplx.create_named_datasets({
"x",
"y",
"z"},
84 vfccplx.write_xml_vtk(
"vector_field_3d-f.vtu",
"vector_field_3d-f");
89 int max_steps = 100000;
99 auto p_old = cvccplx.add_node({x_old, y_old, z_old, t});
100 for(
int num_steps=0;num_steps<max_steps;num_steps++) {
101 double x_new = x_old + a*(y_old-x_old)*delta;
102 double y_new = y_old + (x_old*(b-z_old)-y_old)*delta;
103 double z_new = z_old + (x_old*y_old-c*z_old)*delta;
105 auto p_new = cvccplx.add_node({x_new, y_new, z_new, t});
106 cvccplx.add_cell(cc_t::cell_kind_t::SEGMENT, {p_old, p_new});
113 cvccplx.dump_cplx(5);
114 cvccplx.write_xml_vtk(
"vector_field_3d-c.vtu",
"vector_field_3d-c");