PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
periDEMModel.h
Go to the documentation of this file.
1/*
2 * -------------------------------------------
3 * Copyright (c) 2021 - 2026 Prashant K. Jha
4 * -------------------------------------------
5 * PeriDEM https://github.com/prashjha/PeriDEM
6 *
7 * Distributed under the Boost Software License, Version 1.0. (See accompanying
8 * file LICENSE)
9 */
10
11#ifndef PERIDEM_MODEL_H
12#define PERIDEM_MODEL_H
13
14#include "data/modelData.h"
15#include "contact/contact.h"
17#include <memory>
18#include <sstream>
19#include <string>
20#include <utility>
21#include <vector>
22
33
34public:
35 explicit PeriDEMModel(std::shared_ptr<inp::Input> & deck, std::string modelName = "PeriDEMModel");
36
37 void log(std::ostringstream &oss, int priority = 0, bool check_condition = true, int override_priority = -1, bool screen_out = false);
38
39 void log(const std::string &str, int priority = 0, bool check_condition = true, int override_priority = -1, bool screen_out = false);
40
41 void run(std::shared_ptr<inp::Input> & deck);
42
43 void restart(std::shared_ptr<inp::Input> & deck);
44
45 void init();
46
47 void close();
48
49 void integrate();
50
51 void integrateStep();
52
53 void computeForces();
54
56
58
60
61 void output();
62
63 std::string ppTwoParticleTest();
64
65 std::string ppCompressiveTest();
66
67 void checkStop();
68
69 void setContact(std::unique_ptr<contact::Contact> c) { d_contact_p = std::move(c); }
70
71 void setPostprocess(std::unique_ptr<postprocess::Postprocess> p) {
72 d_postprocess_p = std::move(p);
73 }
74
75 std::unique_ptr<contact::Contact> d_contact_p;
76 std::unique_ptr<postprocess::Postprocess> d_postprocess_p;
77};
78
81#endif // PERIDEM_MODEL_H
void applyInitialCondition()
void restart(std::shared_ptr< inp::Input > &deck)
std::unique_ptr< contact::Contact > d_contact_p
void computeExternalForces()
void setPostprocess(std::unique_ptr< postprocess::Postprocess > p)
void applyDisplacementBC()
void setContact(std::unique_ptr< contact::Contact > c)
void log(std::ostringstream &oss, int priority=0, bool check_condition=true, int override_priority=-1, bool screen_out=false)
std::string ppTwoParticleTest()
std::unique_ptr< postprocess::Postprocess > d_postprocess_p
std::string ppCompressiveTest()
A class to store model data.
Definition modelData.h:50
Definition run.py:1