30 #ifndef _LibDEM_PeriodicBoundary_H
31 #define _LibDEM_PeriodicBoundary_H
52 GRANOO_CLASS_DEFAULT_COLOR(.2, .8, .4, .2);
72 virtual std::string
info()
const;
78 virtual std::ostream&
write_ascii (std::ostream& out)
const;
79 virtual std::istream&
read_ascii (std::istream& in);
84 template<
class Archive>
void serialize(Archive&,
const unsigned int);
100 template<
class Archive>
void
102 ar & boost::serialization::base_object<Core::Base>(*
this);
121 #include <boost/serialization/version.hpp>
126 GRANOO_CLASS_DECLARE_TPL(DEM::PeriodicBoundary);
BOOST_CLASS_VERSION(GranOO3::DEM::PeriodicBoundary, 0) namespace GranOO3
Definition: PeriodicBoundary.hpp:122
Definition: PropClass.hpp:47
Definition: SetOf.hpp:346
a base class that represents an element
Definition: Element.hpp:55
a singleton virtual class for representing periodic boundaries
Definition: PeriodicBoundary.hpp:49
void make_periodic(Element &el)
a function that transforms a normal element into a periodic master element with its related slaves
Definition: PeriodicBoundary.cpp:69
PeriodicBoundary & operator=(const PeriodicBoundary &)=delete
std::function< Geom::Vector(const Geom::Vector &, bool &)> & get_periodic_mv_function()
get the move function
Definition: PeriodicBoundary.hpp:107
void serialize(Archive &, const unsigned int)
complete serializing of the FractureFacet in the *.gdd format
Definition: PeriodicBoundary.hpp:101
std::function< Geom::Vector(const Geom::Vector &)> & get_follow_master_function(unsigned int rank)
get the "follow master"
Definition: PeriodicBoundary.hpp:112
PeriodicBoundary()
constructor
Definition: PeriodicBoundary.cpp:55
static PeriodicBoundary & get()
get the singleton instance of the periodic boundaries
Definition: PeriodicBoundary.cpp:50
void retrieve_slave()
Definition: PeriodicBoundary.cpp:108
virtual ~PeriodicBoundary()
destructor
Definition: PeriodicBoundary.cpp:63
void clean_slave_element_without_master()
Definition: PeriodicBoundary.cpp:120
static PeriodicBoundary * _me
a pointer to the singleton
Definition: PeriodicBoundary.hpp:87
virtual void init_function()=0
a pure virtual function that must be overridden
PeriodicBoundary(const PeriodicBoundary &)=delete
virtual void draw()=0
a pure virtual function to draw the domain
virtual std::string info() const
a util method to get some info
Definition: PeriodicBoundary.cpp:135
virtual std::istream & read_ascii(std::istream &in)
Definition: PeriodicBoundary.cpp:145
std::vector< std::function< Geom::Vector(const Geom::Vector &)> > _follow_master_function
a list of simple functions for moving slave elements considering the master
Definition: PeriodicBoundary.hpp:96
friend class boost::serialization::access
Definition: PeriodicBoundary.hpp:83
std::function< Geom::Vector(const Geom::Vector &, bool &)> _periodic_mv_function
a simple function for moving master elements from one boundary to another
Definition: PeriodicBoundary.hpp:95
void init_periodic_object()
a function that initializes all the Periodic instances
Definition: PeriodicBoundary.cpp:83
virtual std::ostream & write_ascii(std::ostream &out) const
Definition: PeriodicBoundary.cpp:140
Definition: Vector.hpp:75
Definition: Common.hpp:198