25#ifndef __BITPIT_PABLO_UNIFORM_HPP__
26#define __BITPIT_PABLO_UNIFORM_HPP__
31#include "ParaTree.hpp"
38 typedef std::vector<bool> bvector;
39 typedef std::bitset<72> octantID;
40 typedef std::vector<Octant*> ptroctvector;
41 typedef ptroctvector::iterator octantIterator;
42 typedef std::vector<darray3> darray3vector;
81#if BITPIT_ENABLE_MPI==1
84 PabloUniform(
double X,
double Y,
double Z,
double L, uint8_t dim = 2,
const std::string &logfile =
DEFAULT_LOG_FILE, MPI_Comm comm = MPI_COMM_WORLD);
94 void reset()
override;
97 void dump(std::ostream &stream,
bool full =
true)
override;
98 void restore(std::istream &stream)
override;
104 double getX0()
const;
105 double getY0()
const;
106 double getZ0()
const;
116 double getX(uint32_t idx)
const;
117 double getY(uint32_t idx)
const;
118 double getZ(uint32_t idx)
const;
119 double getSize(uint32_t idx)
const;
120 double getArea(uint32_t idx)
const;
122 void getCenter(uint32_t idx, darray3& center)
const;
125 void getFaceCenter(uint32_t idx, uint8_t iface, darray3& center)
const;
126 darray3
getNode(uint32_t idx, uint8_t inode)
const;
127 void getNode(uint32_t idx, uint8_t inode, darray3& node)
const;
128 void getNodes(uint32_t idx, darr3vector & nodes)
const;
129 darr3vector
getNodes(uint32_t idx)
const;
130 void getNormal(uint32_t idx, uint8_t iface, darray3 & normal)
const;
131 darray3
getNormal(uint32_t idx, uint8_t iface)
const;
148 void getNode(
const Octant* oct, uint8_t inode, darray3& node)
const;
151 void getNormal(
const Octant* oct, uint8_t iface, darray3 & normal)
const;
187 void write(
const std::string &filename);
188 void writeTest(
const std::string &filename, dvector data);
Intersection class definition.
Para Tree is the user interface class.
const u32arr3vector & getNodes() const
static BITPIT_PUBLIC_API const std::string DEFAULT_LOG_FILE