MDStressLab++
Loading...
Searching...
No Matches
calculateStress.cpp File Reference
#include <string>
#include <iostream>
#include <vector>
#include "neighbor_list.h"
#include "InteratomicForces.h"
#include "kim.h"
#include "BoxConfiguration.h"
#include "Configuration.h"
#include "SubConfiguration.h"
#include "Stress.h"
#include "typedef.h"
#include "StressTuple.h"
#include "helper.hpp"
#include "Rigidity.h"
#include <tuple>
#include <chrono>
#include <omp.h>
Include dependency graph for calculateStress.cpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int calculateStress (const BoxConfiguration &body, Kim &kim, std::tuple<> stress, const bool &projectForces=false)
 
template<typename ... BF>
int calculateStress (const BoxConfiguration &body, Kim &kim, std::tuple< Stress< BF, Cauchy > &... > stress, const bool &projectForces=false)
 
template<typename ... BF>
int calculateStress (const BoxConfiguration &body, Kim &kim, std::tuple< Stress< BF, Piola > &... > stress, const bool &projectForces=false)
 
int calculateKineticStress (const BoxConfiguration &body, std::tuple<> cauchyStress)
 
template<typename ... BF>
int calculateKineticStress (const Configuration *pconfig, std::tuple< Stress< BF, Cauchy > &... > cauchyStress)
 Compute only the kinetic contribution to Cauchy stress.
 
template<typename ... BF>
int calculateKineticStress (const BoxConfiguration &body, std::tuple< Stress< BF, Cauchy > &... > cauchyStress)
 Compute only kinetic Cauchy stress for a boxed configuration.
 
template<typename ... TStressPiola, typename ... TStressCauchy>
int calculateStress (const BoxConfiguration &body, Kim &kim, std::tuple< TStressPiola &... > piolaStress, std::tuple< TStressCauchy &... > cauchyStress, const bool &projectForces=false)
 
template<typename ... TStressPiola, typename ... TStressCauchy>
int calculateStress (const Configuration *pconfig, Kim &kim, std::tuple< TStressPiola &... > piolaStress, std::tuple< TStressCauchy &... > cauchyStress, const bool &projectForces=false)
 
int process_DEDr (const void *dataObject, const double de, const double r, const double *const dx, const int i, const int j)
 

Function Documentation

◆ calculateKineticStress() [1/3]

template<typename ... BF>
int calculateKineticStress ( const BoxConfiguration body,
std::tuple< Stress< BF, Cauchy > &... >  cauchyStress 
)

Compute only kinetic Cauchy stress for a boxed configuration.

If periodic boundary conditions are enabled, a padded configuration is created before calling the Configuration* overload. The original atoms and grid points are not folded into the primary cell.

Definition at line 183 of file calculateStress.cpp.

◆ calculateKineticStress() [2/3]

int calculateKineticStress ( const BoxConfiguration body,
std::tuple<>  cauchyStress 
)
Examples
testIdealGas.cpp.

Definition at line 78 of file calculateStress.cpp.

◆ calculateKineticStress() [3/3]

template<typename ... BF>
int calculateKineticStress ( const Configuration pconfig,
std::tuple< Stress< BF, Cauchy > &... >  cauchyStress 
)

Compute only the kinetic contribution to Cauchy stress.

This routine is defined only for Cauchy stress objects. It first computes continuum mass density and momentum density on each Cauchy grid, then forms the continuum velocity \(\mathbf v=\mathbf p/\rho\) where \(\rho>0\) and zero otherwise. The kinetic stress is accumulated using relative atom velocities \(\mathbf v_i-\mathbf v(\mathbf x)\).

Definition at line 96 of file calculateStress.cpp.

◆ calculateStress() [1/5]

template<typename ... BF>
int calculateStress ( const BoxConfiguration body,
Kim kim,
std::tuple< Stress< BF, Cauchy > &... >  stress,
const bool &  projectForces = false 
)

Definition at line 38 of file calculateStress.cpp.

◆ calculateStress() [2/5]

template<typename ... BF>
int calculateStress ( const BoxConfiguration body,
Kim kim,
std::tuple< Stress< BF, Piola > &... >  stress,
const bool &  projectForces = false 
)

Definition at line 65 of file calculateStress.cpp.

◆ calculateStress() [3/5]

template<typename ... TStressPiola, typename ... TStressCauchy>
int calculateStress ( const BoxConfiguration body,
Kim kim,
std::tuple< TStressPiola &... >  piolaStress,
std::tuple< TStressCauchy &... >  cauchyStress,
const bool &  projectForces = false 
)

Definition at line 198 of file calculateStress.cpp.

◆ calculateStress() [4/5]

int calculateStress ( const BoxConfiguration body,
Kim kim,
std::tuple<>  stress,
const bool &  projectForces = false 
)

◆ calculateStress() [5/5]

template<typename ... TStressPiola, typename ... TStressCauchy>
int calculateStress ( const Configuration pconfig,
Kim kim,
std::tuple< TStressPiola &... >  piolaStress,
std::tuple< TStressCauchy &... >  cauchyStress,
const bool &  projectForces = false 
)

Definition at line 314 of file calculateStress.cpp.

◆ process_DEDr()

int process_DEDr ( const void *  dataObject,
const double  de,
const double  r,
const double *const  dx,
const int  i,
const int  j 
)

Definition at line 794 of file calculateStress.cpp.