Program Listing for File computemesh.hpp#
↰ Return to documentation for file (pymembrane/cppmodule/src/compute/computemesh.hpp
)
#ifndef __computemesh_hpp__
#define __computemesh_hpp__
#include <memory>
#include <map>
#include "../types/globaltypes.hpp"
#include "../types/pymembvector.hpp"
class SystemClass; // forward declaration
class EvolverClass;
class ComputeMesh
{
public:
ComputeMesh(SystemClass &system) : _system(system) {}
void compute_vertex_normals(bool vertex_normal_angle_weight = false);
void compute_face_normals(void);
pymemb::vector<real> compute_edge_lengths(void);
real gaussiancurvature_vertex(const int &vertex_index);
real meancurvature_vertex(const int &vertex_index);
pymemb::vector<real> gaussiancurvature(void);
pymemb::vector<real> meancurvature(void);
std::map<std::string, pymemb::vector<real>> compute_mesh_curvature(void);
pymemb::vector<pymemb::vector<real>> compute_face_metric(void);
real compute_mesh_volume(void);
pymemb::vector<real> compute_face_area(void);
real compute_mesh_area(void);
pymemb::vector<real> compute_vertex_area(void);
std::map<std::string, real> compute_mesh_energy(EvolverClass &);
pymemb::vector<real3> compute_vertex_forces(EvolverClass &);
realTensor compute_stresses(EvolverClass &, const bool &);
realTensor get_stresses(EvolverClass &, const bool &);
std::vector<real> compute_pressure(EvolverClass &);
realTensor compute_kinetic_energy_tensor(void);
real compute_kinetic_energy(void);
real compute_temperature(void);
realTensor compute_stresses_virial(EvolverClass &evolver, const bool &computeForAllAtoms);
std::vector<realTensor> compute_stresses_atom(EvolverClass &evolver, const bool &computeForAllAtoms);
private:
SystemClass &_system;
};
#endif