Memosa-FVM  0.2
MPM_Particles.h
Go to the documentation of this file.
1 // This file os part of FVM
2 // Copyright (c) 2012 FVM Authors
3 // See LICENSE file for terms.
4 
5 #ifndef _MPM_H_
6 #define _MPM_H_
7 
8 #include "Array.h"
9 #include "StorageSite.h"
10 #include "Vector.h"
11 #include "Field.h"
12 #include "CRConnectivity.h"
13 
14 
15 class MPM
16 {
17  public:
18  MPM(string fileName);
19 
20  MPM();
21 
22  ~MPM();
23 
26 
27  const StorageSite& getParticles() const {return _particles;}
28 
29  const StorageSite& getParticles(int num_particles) {
30  _particles.setCount( num_particles);
31  return _particles;}
32 
33  const shared_ptr<Array<VecD3> >& getCoordinates() {return _coordinates;}
34 
35  const shared_ptr<Array<VecD3> >& getVelocities() {return _velocities;}
36 
37  const shared_ptr<Array<double> >& getTemperatures() {return _temperatures;}
38 
39  const shared_ptr<Array<int> >& getTypes() {return _types;}
40 
41 
42  void setCoordinates(const shared_ptr<ArrayBase> x)
43  {_coordinates = dynamic_pointer_cast< Array<VecD3> > ( x );}
44 
45  void setVelocities(const shared_ptr<ArrayBase > v )
46  {_velocities = dynamic_pointer_cast< Array<VecD3> > (v);}
47 
48  void setTypes(const shared_ptr<ArrayBase > type)
49  {_types = dynamic_pointer_cast< Array<int> > (type);}
50 
51  void setTemperatures(const shared_ptr<ArrayBase > t)
52  {_temperatures = dynamic_pointer_cast< Array<double> > (t);}
53 
54  void setandwriteParticles(const char *file);
55 
56  const shared_ptr<Array<VecD3> > readVelocities(const char *file);
57 
58  const shared_ptr<Array<VecD3> > readCoordinates(const char *file);
59 
60  const shared_ptr<Array<int> > readTypes(const char *file);
61 
62  const shared_ptr<Array<double> > readTemperatures(const char *file);
63 
64  void Init (const shared_ptr<Array<VecD3> > coordinates,
65  const shared_ptr<Array<VecD3> > velocities,
66  const shared_ptr<Array<int> > types,
67  const shared_ptr<Array<double> > temperatures);
68  void Impl(string fileName);
69 
70  protected:
72  shared_ptr<Array<VecD3> > _coordinates;
73  shared_ptr<Array<VecD3> > _velocities;
74  shared_ptr<Array<int> > _types; //1 for surface particles or 0 for internal particles
75  shared_ptr<Array<double> > _temperatures;
76 
77 };
78 #endif
const shared_ptr< Array< VecD3 > > & getCoordinates()
Definition: MPM_Particles.h:33
void Init(const shared_ptr< Array< VecD3 > > coordinates, const shared_ptr< Array< VecD3 > > velocities, const shared_ptr< Array< int > > types, const shared_ptr< Array< double > > temperatures)
const shared_ptr< Array< double > > readTemperatures(const char *file)
const StorageSite & getParticles(int num_particles)
Definition: MPM_Particles.h:29
const shared_ptr< Array< VecD3 > > readCoordinates(const char *file)
shared_ptr< Array< int > > _types
Definition: MPM_Particles.h:74
const shared_ptr< Array< VecD3 > > & getVelocities()
Definition: MPM_Particles.h:35
shared_ptr< Array< double > > _temperatures
Definition: MPM_Particles.h:75
shared_ptr< Array< VecD3 > > _velocities
Definition: MPM_Particles.h:73
void setCount(const int selfCount, const int nGhost=0)
Definition: StorageSite.h:42
StorageSite _particles
Definition: MPM_Particles.h:71
void setTemperatures(const shared_ptr< ArrayBase > t)
Definition: MPM_Particles.h:51
void setCoordinates(const shared_ptr< ArrayBase > x)
Definition: MPM_Particles.h:42
const StorageSite & getParticles() const
Definition: MPM_Particles.h:27
void setandwriteParticles(const char *file)
Array< VecD3 > VecD3Array
Definition: MPM_Particles.h:25
const shared_ptr< Array< double > > & getTemperatures()
Definition: MPM_Particles.h:37
Definition: Array.h:14
void setTypes(const shared_ptr< ArrayBase > type)
Definition: MPM_Particles.h:48
const shared_ptr< Array< VecD3 > > readVelocities(const char *file)
const shared_ptr< Array< int > > readTypes(const char *file)
Vector< double, 3 > VecD3
Definition: MPM_Particles.h:24
void setVelocities(const shared_ptr< ArrayBase > v)
Definition: MPM_Particles.h:45
shared_ptr< Array< VecD3 > > _coordinates
Definition: MPM_Particles.h:72
void Impl(string fileName)
const shared_ptr< Array< int > > & getTypes()
Definition: MPM_Particles.h:39