Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F79825689
material_points_factory.hh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Aug 28, 10:54
Size
1 KB
Mime Type
text/x-c++
Expires
Fri, Aug 30, 10:54 (2 d)
Engine
blob
Format
Raw Data
Handle
20139618
Attached To
R7554 sp4e_exercices
material_points_factory.hh
View Options
#ifndef __MATERIAL_POINTS_FACTORY__HH__
#define __MATERIAL_POINTS_FACTORY__HH__
/* -------------------------------------------------------------------------- */
#include "functional"
#include "material_point.hh"
#include "particles_factory_interface.hh"
/* -------------------------------------------------------------------------- */
//! Factory for material points
class MaterialPointsFactory : public ParticlesFactoryInterface {
/* ------------------------------------------------------------------------ */
/* Constructors/Destructors */
/* ------------------------------------------------------------------------ */
private:
MaterialPointsFactory() {
createComputes = [&](Real timestep) {
this->createDefaultComputes(timestep);
};
};
/* ------------------------------------------------------------------------ */
/* Methods */
/* ------------------------------------------------------------------------ */
public:
SystemEvolution& createSimulation(const std::string& fname,
Real timestep) override;
template <typename Func>
SystemEvolution& createSimulation(const std::string& fname, Real timestep,
Func func) {
createComputes = [&](Real timestep) { func(*this, timestep); };
return this->createSimulation(fname, timestep);
}
void createDefaultComputes(Real timestep);
std::function<void(Real)> createComputes;
std::unique_ptr<Particle> createParticle() override;
static ParticlesFactoryInterface& getInstance();
};
/* -------------------------------------------------------------------------- */
#endif //__MATERIAL_POINTS_FACTORY__HH__
Event Timeline
Log In to Comment