File: SphereBody.cpp

package info (click to toggle)
esys-particle 2.3.4%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 13,036 kB
  • ctags: 10,805
  • sloc: cpp: 80,009; python: 5,872; makefile: 1,243; sh: 313; perl: 225
file content (76 lines) | stat: -rw-r--r-- 1,998 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/////////////////////////////////////////////////////////////
//                                                         //
// Copyright (c) 2003-2014 by The University of Queensland //
// Centre for Geoscience Computing                         //
// http://earth.uq.edu.au/centre-geoscience-computing      //
//                                                         //
// Primary Business: Brisbane, Queensland, Australia       //
// Licensed under the Open Software License version 3.0    //
// http://www.apache.org/licenses/LICENSE-2.0          //
//                                                         //
/////////////////////////////////////////////////////////////

#include "Model/SphereBody.h"
#include "Foundation/console.h"

/*!
  Default constructor. Zeroes all variables. Does _not_ construct
  a useable sphere body!
*/
CSphereBody::CSphereBody()
{
  m_centre=Vec3::ZERO;
  m_radius=0.0;
  m_oldpos=Vec3::ZERO;
  m_force = Vec3::ZERO;
  m_vel   = Vec3::ZERO;
}

/*!
  constructor

  \param c the centre of the sphere body
  \param r the radius of the sphere body
*/
CSphereBody::CSphereBody(const Vec3& c,const double& r)
{
  m_centre=c;
  m_radius=r;
  m_oldpos=m_centre;
  m_force = Vec3::ZERO;
  m_vel   = Vec3::ZERO;
}

/*!
  write restartable checkpoint data to an output stream

  \param ost the output stream
  \param delim
*/
void CSphereBody::writeCheckPoint(ostream& ost,const string &delim) const
{
  ost << m_centre << " " << m_oldpos << " " << m_radius << delim;
}

/*!
  load wall data from a restartable checkpoint

  \param ist the input stream from which the checkpoint is read
*/
void CSphereBody::loadCheckPoint(istream& ist)
{
  ist >> m_centre ;
  ist >> m_oldpos ;
  ist >> m_radius ;
}

ostream& operator<<(ostream& ost,const CSphereBody& w)
{
  ost << "--Wall--" << endl;
  ost << "position : " << w.m_centre << endl;
  ost << "radius   : " << w.m_radius << endl;
  ost << "displ.   : " << w.m_centre-w.m_oldpos << endl;
  ost << flush;
  return ost;
}