~ubuntu-branches/debian/sid/lammps/sid

« back to all changes in this revision

Viewing changes to lib/atc/ATC_CouplingMass.h

  • Committer: Package Import Robot
  • Author(s): Anton Gladky
  • Date: 2013-11-20 22:41:36 UTC
  • mfrom: (1.2.2)
  • Revision ID: package-import@ubuntu.com-20131120224136-tzx7leh606fqnckm
Tags: 0~20131119.git7162cf0-1
* [e65b919] Imported Upstream version 0~20131119.git7162cf0
* [f7bddd4] Fix some problems, introduced by upstream recently.
* [3616dfc] Use wrap-and-sort script.
* [7e92030] Ignore quilt dir

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef ATC_COUPLING_MASS_H
 
2
#define ATC_COUPLING_MASS_H
 
3
 
 
4
/** owned field/s: MASS_DENSITY */
 
5
 
 
6
// ATC headers
 
7
#include "ATC_Coupling.h"
 
8
 
 
9
// Other headers
 
10
#include <map>
 
11
#include <string>
 
12
 
 
13
namespace ATC {
 
14
 
 
15
  // Forward declarations
 
16
  class FE_Engine;
 
17
  class SpeciesTimeIntegrator;
 
18
  class ChargeRegulator;
 
19
  class ConcentrationRegulator;
 
20
 
 
21
  /**
 
22
   *  @class ATC_CouplingMass
 
23
   *  @brief A class for atom-continuum transfers & control for species transport
 
24
   */
 
25
 
 
26
  //--------------------------------------------------------
 
27
  //--------------------------------------------------------
 
28
  //  Class ATC_CouplingMass
 
29
  //--------------------------------------------------------
 
30
  //--------------------------------------------------------
 
31
 
 
32
  class ATC_CouplingMass : public ATC_Coupling {
 
33
 
 
34
  public:
 
35
  
 
36
    // constructor
 
37
    ATC_CouplingMass(std::string groupName, 
 
38
                     double **& perAtomArray,
 
39
                     LAMMPS_NS::Fix * thisFix,
 
40
                     std::string matParamFile,
 
41
                     ExtrinsicModelType extrinsic = NO_MODEL);
 
42
      
 
43
    // destructor
 
44
    virtual ~ATC_CouplingMass();
 
45
 
 
46
    /** parser/modifier */
 
47
    virtual bool modify(int narg, char **arg);
 
48
  
 
49
    /** pre time integration */
 
50
    virtual void initialize();
 
51
 
 
52
    /** prior to exchange */
 
53
    virtual void pre_exchange();
 
54
    virtual void reset_atoms() { resetNlocal_=true;}
 
55
 
 
56
    /** compute vector for output */
 
57
    virtual double compute_vector(int n);
 
58
 
 
59
    /** output routines */
 
60
    virtual void output();
 
61
 
 
62
  protected:
 
63
 
 
64
    // functions
 
65
    //---------------------------------------------------------------
 
66
    /** initialization routines */
 
67
    //---------------------------------------------------------------
 
68
    /** constructs all data which is updated with time integration, i.e. fields */
 
69
    //virtual void construct_time_integration_data();
 
70
    /** set up data which is dependency managed */
 
71
    virtual void construct_transfers();
 
72
 
 
73
    /** sets the position/velocity of the ghost atoms */
 
74
    virtual void set_ghost_atoms(){};
 
75
 
 
76
    /** physics specific filter initialization */
 
77
    void init_filter();
 
78
 
 
79
    bool resetNlocal_;
 
80
 
 
81
    
 
82
    
 
83
    //      i.e. we only need the correct shape function matrix for restriction
 
84
  };
 
85
 
 
86
};
 
87
 
 
88
#endif