Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F91660145
ATC_CouplingMomentum.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Nov 13, 05:03
Size
2 KB
Mime Type
text/x-c
Expires
Fri, Nov 15, 05:03 (1 d, 20 h)
Engine
blob
Format
Raw Data
Handle
22302694
Attached To
rLAMMPS lammps
ATC_CouplingMomentum.h
View Options
#ifndef ATC_COUPLING_MOMENTUM_H
#define ATC_COUPLING_MOMENTUM_H
/** owned field/s: DISPLACEMENT, VELOCITY */
// ATC headers
#include "ATC_Coupling.h"
#include "Kinetostat.h"
#include "ElasticTimeIntegrator.h"
// Other headers
#include <string>
namespace
ATC
{
// Forward declarations
class
AtfShapeFunctionRestriction
;
class
AtfShapeFunctionMdProjection
;
/**
* @class ATC_CouplingMomentum
* @brief A class for atom-continuum transfers & control involving mechanical motion
* (owned field/s: DISPLACEMENT, VELOCITY)
*/
class
ATC_CouplingMomentum
:
public
ATC_Coupling
{
public:
// constructor
ATC_CouplingMomentum
(
std
::
string
groupName
,
double
**&
perAtomArray
,
LAMMPS_NS
::
Fix
*
thisFix
,
std
::
string
matParamFile
,
PhysicsType
intrinsicModel
,
ExtrinsicModelType
extrinsicModel
=
NO_MODEL
);
// destructor
virtual
~
ATC_CouplingMomentum
();
/** parser/modifier */
virtual
bool
modify
(
int
narg
,
char
**
arg
);
/** pre time integration */
virtual
void
initialize
();
/** pre/post atomic force calculation in minimize */
virtual
void
min_pre_force
();
virtual
void
min_post_force
();
/** compute scalar for output - added energy */
virtual
double
compute_scalar
(
void
);
/** compute vector for output */
virtual
double
compute_vector
(
int
n
);
double
kinetic_energy
(
const
IntegrationDomainType
domain
=
FULL_DOMAIN
);
// const;
double
potential_energy
(
const
IntegrationDomainType
domain
=
FULL_DOMAIN
)
const
;
/** output routines */
virtual
void
output
(
void
);
protected:
//---------------------------------------------------------------
/** initialization routines */
//---------------------------------------------------------------
/** constructs all data which is updated with time integration, i.e. fields */
//virtual void construct_time_integration_data();
/** set up data which is dependency managed */
virtual
void
construct_transfers
();
/** physics specific filter initialization */
void
init_filter
();
// data
double
refPE_
;
/** mass matrix computed with atomic quadrature for KE output */
MASS_MATS
Ma_
;
};
};
#endif
Event Timeline
Log In to Comment