NuTo
Numerics Tool
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
nuto
geometryConcrete
collision
collidables
CollidableParticleSphere.h
Go to the documentation of this file.
1
/*
2
* CollidableSphere.h
3
*
4
* Created on: 17 Jan 2014
5
* Author: ttitsche
6
*/
7
8
#pragma once
9
10
#include "
nuto/geometryConcrete/collision/collidables/CollidableParticleBase.h
"
11
12
13
namespace
NuTo
14
{
15
16
class
CollidableBase;
17
class
CollidableWallPhysical;
18
class
CollidableWallVirtual;
19
class
CollidableWallCylinder;
20
class
CollidableWallBase;
21
22
namespace
Visualize
23
{
24
class
UnstructuredGrid
;
25
}
26
28
class
CollidableParticleSphere
:
public
NuTo::CollidableParticleBase
29
{
31
friend
class
CollidableWallPhysical
;
32
friend
class
CollidableWallVirtual
;
33
friend
class
CollidableWallCylinder
;
34
friend
class
CollidableWallBase
;
35
36
public
:
43
CollidableParticleSphere
(Eigen::Vector3d rPosition, Eigen::Vector3d rVelocity,
double
rRadius,
double
rGrowthRate,
44
int
rIndex);
45
48
void
MoveAndGrow(
double
rTime)
override
;
49
51
double
GetKineticEnergy()
const override
;
52
54
double
GetVolume()
const override
;
55
58
void
PerformCollision(
CollidableBase
& rCollidable)
override
;
59
62
void
PerformCollision(
CollidableParticleSphere
& rSphere)
override
;
63
66
void
PerformCollision(
CollidableWallBase
& rWall)
override
;
67
72
double
PredictCollision(
CollidableBase
& rCollidable,
int
& rType)
override
;
73
79
double
PredictCollision(
CollidableParticleSphere
& rSphere,
int
& rType)
override
;
80
85
double
PredictCollision(
CollidableWallBase
& rWall,
int
& rType)
override
;
86
89
void
GetLocalEventsToDelete(
LocalEvents
& rEventsToDelete)
const override
;
90
94
Eigen::MatrixXd ExportRow(
bool
rInitialRadius =
false
)
const
;
95
98
void
VisualizationDynamic(
Visualize::UnstructuredGrid
& rVisualizer,
bool
rFinal)
const
;
99
101
void
ResetVelocity();
102
106
void
SetGrowthRate(
double
rGrowthRateFactor,
double
rTime);
107
109
const
Eigen::Vector3d& GetPosition()
const
;
110
112
double
GetRadius()
const
;
113
115
double
GetRadius0()
const
;
116
117
private
:
119
double
mRadius;
120
122
double
mRadiusGrowth;
123
125
double
mRadius0;
126
128
double
mGrowthRate;
129
131
double
mTimeOfLastUpdate;
132
134
double
mTimeOfGrowthReset;
135
142
double
SphereCollision1D(
double
rVelocity1,
double
rVelocity2,
double
rMass1,
double
rMass2)
const
;
143
146
void
Print(std::ostream& rReturnStream)
const override
;
147
};
148
149
}
/* namespace NuTo */
NuTo::CollidableParticleSphere
class for spherical collidables
Definition:
CollidableParticleSphere.h:28
NuTo::CollidableParticleBase
base class for all particles TODO: Idea: implement an interface that somehow every particle knows how...
Definition:
CollidableParticleBase.h:19
NuTo::CollidableWallPhysical
class for planar physical walls
Definition:
CollidableWallPhysical.h:17
NuTo::Visualize::UnstructuredGrid
visualization of unstructured grids
Definition:
UnstructuredGrid.h:18
NuTo::CollidableBase
Base class for all collidables.
Definition:
CollidableBase.h:22
CollidableParticleBase.h
NuTo::CollidableWallVirtual
virtual, inner, planar wall of the specimen
Definition:
CollidableWallVirtual.h:17
NuTo
Definition:
Exception.h:6
NuTo::CollidableWallBase
base class for walls
Definition:
CollidableWallBase.h:23
NuTo::CollidableWallCylinder
class for cylindric walls
Definition:
CollidableWallCylinder.h:17
NuTo::LocalEvents
std::vector< Event * > LocalEvents
Definition:
CollidableBase.h:17
Truss1D2N.Visualize
def Visualize(structure, file)
Definition:
Truss1D2N.py:63
Generated on Wed Sep 19 2018 05:53:21 for NuTo by
1.8.11