ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
operator_force_stress_utils.h File Reference
#include "source_base/matrix.h"
#include "source_cell/unitcell.h"
#include <vector>
Include dependency graph for operator_force_stress_utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  OperatorForceStress::OrbitalQuantumNumbers
 Structure to hold orbital quantum numbers. More...
 

Namespaces

namespace  OperatorForceStress
 

Functions

void OperatorForceStress::setup_step_trace (int npol, int col_size, std::vector< int > &step_trace)
 Setup step_trace array for handling npol (spin polarization)
 
OrbitalQuantumNumbers OperatorForceStress::get_orbital_qn (const Atom &atom, int iw)
 Extract orbital quantum numbers from atom and orbital index.
 
template<typename T >
double OperatorForceStress::get_real_part (const T &val)
 Helper function to extract real part from complex or real values.
 
template<>
double OperatorForceStress::get_real_part< double > (const double &val)
 
void OperatorForceStress::rearrange_stress_matrix (ModuleBase::matrix &stress)
 Rearrange stress from 6-component vector to 3x3 matrix format.
 
void OperatorForceStress::finalize_force_stress (bool cal_force, bool cal_stress, const UnitCell *ucell, const std::vector< double > &stress_tmp, ModuleBase::matrix &force, ModuleBase::matrix &stress, double force_factor=2.0, double stress_factor=2.0)
 Finalize force and stress calculations with MPI reduction and post-processing.