PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
selfContact.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 PD_SELFCONTACT_H
12#define PD_SELFCONTACT_H
13
14#include "util/point.h"
15
16#include <memory>
17#include <string>
18
19namespace pd {
20
23public:
24 virtual ~SelfContact() = default;
25
34 virtual util::Point force(const util::Point &yji, double volj, double Kn,
35 double Rc, double r0) const = 0;
36};
37
40public:
41 util::Point force(const util::Point &yji, double volj, double Kn, double Rc,
42 double r0) const override;
43};
44
50public:
51 util::Point force(const util::Point &yji, double volj, double Kn, double Rc,
52 double r0) const override;
53};
54
57public:
58 util::Point force(const util::Point &yji, double volj, double Kn, double Rc,
59 double r0) const override;
60};
61
63std::unique_ptr<SelfContact> makeSelfContact(const std::string &name);
64
65} // namespace pd
66
67#endif // PD_SELFCONTACT_H
Default: Kn * volj * capped_gap / R along yji with gap = R - Rc.
Definition selfContact.h:39
util::Point force(const util::Point &yji, double volj, double Kn, double Rc, double r0) const override
No force on broken bonds (Trask: broken → weight 0).
Definition selfContact.h:56
util::Point force(const util::Point &yji, double volj, double Kn, double Rc, double r0) const override
util::Point force(const util::Point &yji, double volj, double Kn, double Rc, double r0) const override
Intra-body force between nodes when the PD bond is inactive.
Definition selfContact.h:22
virtual util::Point force(const util::Point &yji, double volj, double Kn, double Rc, double r0) const =0
virtual ~SelfContact()=default
Definition pdForce.h:18
std::unique_ptr< SelfContact > makeSelfContact(const std::string &name)
Build self-contact law named by Model.Self_Contact.
A structure to represent 3d vectors.
Definition point.h:30