AGX Dynamics 2.42.3.1
Loading...
Searching...
No Matches
GroundCollapseResult.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16#pragma once
17
19#include <agxTerrain/export.h>
20
21#include <array>
22#include <agx/Vec3.h>
24
28
29namespace agxTerrain
30{
31 namespace GroundCollapse
32 {
33 /*
34Result from a solved contact in the ground collapse simulation.
35*/
37 {
44
46 {
47 return static_cast<agx::Vec3>(normal) * localForce[ 0 ];
48 }
49
51 {
52 return static_cast<agx::Vec3>(tangentU) * localForce[ 1 ]
53 + static_cast<agx::Vec3>(tangentV) * localForce[ 2 ];
54 }
55
56 ~ContactResult() = default;
57 };
58
60
61 /*
62 Solve result for a substep in the ground collapse algorithm.
63 Contains the contact solve results, as well as aggregate
64 properties.
65 */
67 {
68 agx::UInt subStep = 0;
73 /*Factor of safety*/
74 agx::Real fos = 0.0;
75 /*Weighted Factor of safety*/
76 agx::Real fos_n = 0.0;
77
78 ~SubStepResult() = default;
79 };
80
82
83 /*
84 Results from the ground collapse algorithm for a specific FailureSurface.
85 */
87 {
88 /*
89 The FailureSurface.
90 */
91 FailureSurfaceRef failureSurface = nullptr;
92
93 /*
94 SoilAggregate representation of FailureSurface.
95 */
96 FailureSurfaceAggregateRef soilAggregate = nullptr;
97
98 /*
99 Whether the failure surface has been tested for ground collapse.
100 */
101 bool solved = false;
102
103 /*
104 Whether the failure surface collapsed according to the given failure criteria.
105 */
106 bool failed = false;
107
108 /*
109 Load exerted on the soil aggregate during simulation.
110 */
112
113 /*
114 Critical factor of safety
115 */
116 agx::Real fos = 0.0;
117
118 /*
119 Critical weighted factor of safety
120 */
121 agx::Real fos_n = 0.0;
122
123 /*
124 Linear acceleration
125 */
126 agx::Vec3 la = { 0,0,0 };
127
128 /*
129 Angular acceleration
130 */
131 agx::Vec3 aa = { 0,0,0 };
132
133 /*
134 Results from each substep solve in the ground collapse simulation.
135 */
137 };
139
140
141 /*
142 Results from the ground collapse simulation.
143
144 Contains results from all the failure surfaces simulated.
145 */
148 {
149 public:
154
159
164
170
175
182
188
190 void reserve( size_t size );
191 void addResult( const FailureSurfaceResult& result );
193
194 protected:
195 virtual ~GroundCollapseResult() {};
196
197 protected:
204 };
205 }
206}
#define AGX_DECLARE_POINTER_TYPES(type)
Definition: Referenced.h:254
#define AGXTERRAIN_EXPORT
FailureSurfaceResultVector & getResults()
Base class providing referencing counted objects.
Definition: Referenced.h:120
#define DOXYGEN_END_INTERNAL_BLOCK()
Definition: macros.h:89
#define DOXYGEN_START_INTERNAL_BLOCK()
Definition: macros.h:88
The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes.
Definition: Geometry.h:59
uint64_t UInt
Definition: Integer.h:27
double Real
Definition: Real.h:41