CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::BasisSet Class Reference

#include <BasisSet.hh>

+ Inheritance diagram for CASM::BasisSet:

Detailed Description

Definition at line 47 of file BasisSet.hh.

Public Types

using ArgList = BasisSet_impl::ArgList
 
using SubBasis = Array< Index >
 
using PolyConstraint = std::pair< SubBasis, Index >
 

Public Member Functions

 BasisSet (const std::string &name="", ArgList const &_args=ArgList())
 
 BasisSet (const BasisSet &init_basis)
 
const BasisSetoperator= (const BasisSet &RHS)
 
 ~BasisSet ()
 
void clear ()
 
const std::string & name () const
 
std::vector< std::shared_ptr< BasisSet > > const & arguments () const
 
SymGroupRepID basis_symrep_ID () const
 
Index max_poly_order () const
 
Index min_poly_order () const
 
const Array< PolyConstraint > & min_poly_constraints () const
 
const Array< PolyConstraint > & max_poly_constraints () const
 
BasisSet poly_quotient_set (const Function *divisor) const
 
std::shared_ptr< BasisSetshared_copy () const
 
Function const * operator[] (Index i) const
 
Function const * back () const
 
const double & eval_cache (Index i) const
 
const double & deval_cache (Index i) const
 
bool compare (const BasisSet &RHS) const
 
int dependency_layer () const
 
void clear_formulae ()
 
void set_name (const std::string &new_name)
 
void set_basis_symrep_ID (SymGroupRepID new_ID)
 
void add_min_poly_constraint (const Array< Index > &expons, Index expon_sum)
 
void add_max_poly_constraint (const Array< Index > &expons, Index expon_sum)
 
bool satisfies_exponent_constraints (const Array< Index > &expons) const
 
bool accept (const FunctionVisitor &visitor)
 
void set_variable_basis (const DoFSet &_dof_set)
 Define the basis set to contain only variables (e.g., x,y,z) More...
 
void set_dof_IDs (const std::vector< Index > &new_IDs)
 
const std::vector< Index > & dof_IDs () const
 
const SubBasisdof_sub_basis (Index i) const
 
const Array< SubBasis > & dof_sub_bases () const
 
std::vector< std::set< Index > > independent_sub_bases () const
 
void append (const BasisSet &RHS, std::function< Function *(Function *)> const &transform=CASM_TMP::UnaryIdentity< Function * >())
 Append contents of. More...
 
void reshape_and_append (const BasisSet &RHS, std::vector< Index > const &compatibility_map)
 
void construct_polynomials_by_order (ArgList const &tsubs, Index order)
 
void construct_orthonormal_discrete_functions (const DiscreteDoF &allowed_occs, const Eigen::MatrixXd &gram_mat, Index basis_ind, const SymGroup &symgroup)
 
void construct_orthonormal_discrete_functions (const DiscreteDoF &allowed_occs, const std::vector< double > &occ_probs, Index basis_ind, const SymGroup &symgroup)
 
void construct_invariant_polynomials (ArgList const &tsubs, const SymGroup &head_sym_group, Index order, Index min_dof_order=1)
 
void construct_harmonic_polynomials (const ArgList &tsubs, Index order, Index min_order, bool even_only)
 
void calc_invariant_functions (const SymGroup &head_sym_group)
 
BasisSet calc_normal_basis (const SymGroup &head_sym_group, Eigen::MatrixXd &trans_mat) const
 
BasisSet transform_copy (const Eigen::MatrixXd &trans_mat) const
 
BasisSetapply_sym (const SymOp &op, int dependency_layer=1)
 
bool Gram_Schmidt ()
 
bool Gaussian_Elim ()
 
void get_symmetry_representation (const SymGroup &head_sym_group) const
 
bool make_orthogonal_to (Function const *ortho_func)
 
bool make_orthogonal_to (const BasisSet &ortho_basis)
 
jsonParserto_json (jsonParser &json) const
 
void from_json (const jsonParser &json)
 
void remote_eval_and_add_to (Array< double > &cumulant) const
 
void remote_deval_and_add_to (Array< double > &cumulant, const DoF::RemoteHandle &dvar) const
 
template<typename IteratorType >
void remote_eval_to (IteratorType result_begin, IteratorType result_end) const
 
template<typename IteratorType >
void remote_deval_to (IteratorType result_begin, IteratorType result_end, const DoF::RemoteHandle &dvar) const
 
int register_remotes (const std::vector< DoF::RemoteHandle > &remote_handles)
 

Private Types

typedef Array< Function * > X1
 
typedef Array< X1X2
 
typedef Array< X2X3
 
typedef Array< X3X4
 
typedef Array< X4X5
 
typedef Array< X5X6
 
typedef Array< X6X7
 
typedef Array< X7X8
 
typedef Array< X8X9
 
typedef Functionvalue_type
 
typedef Index size_type
 
typedef Function * * iterator
 
typedef const Function * * const_iterator
 

Private Member Functions

void push_back (Function *new_func)
 
Function_back ()
 
Function *& _at (Index i)
 
void _refresh_ID ()
 
void _eval_to_cache () const
 
void _deval_to_cache (const DoF::RemoteHandle &_dvar) const
 
Function_linear_combination (const Eigen::VectorXd &coeffs) const
 
void _set_arguments (const ArgList &new_args)
 
void _set_arguments (const std::vector< std::shared_ptr< BasisSet > > &new_args)
 
bool _update_dof_IDs (const std::vector< Index > before_IDs, const std::vector< Index > &after_IDs)
 
Array< PolyConstraint > & _min_poly_constraints ()
 
Array< PolyConstraint > & _max_poly_constraints ()
 
Index size () const
 
void swap (Array< Function * > &RHS)
 
Function * & at (Index ind)
 
const Function * & at (Index ind) const
 
Function * & operator[] (Index ind)
 
Function * & back ()
 
Function * const * begin () const
 
Function * * begin ()
 
Function * const * cbegin () const
 
Function * const * end () const
 
Function * * end ()
 
Function * const * cend () const
 
void push_back (const Function * &toPush)
 
void pop_back ()
 
void remove (Index ind)
 
void resize (Index new_N)
 
void resize (Index new_N, const Function * &fill_val)
 
void reserve (Index new_max)
 
void sort (const CompareType &comp)
 
void sort (Array< Index > &ind_order)
 
void sort ()
 
Arrayappend (const Array &new_tail)
 
Arrayappend_unique (const Array &new_tail)
 
void swap_elem (Index i, Index j)
 
Arraypermute (const Array< Index > &perm_array)
 
Arrayipermute (const Array< Index > &perm_array)
 
bool next_permute ()
 
ReturnArray< Indexas_perm_inverse () const
 
ReturnArray< Indexas_perm_transform_by (const Array< Index > &trans_perm) const
 
const Function * & max () const
 
const Function * & min () const
 
ReturnArray< Function * > sub_array (Index ind_begin, Index ind_end) const
 
Functionsum () const
 
bool is_ascending () const
 
bool is_descending () const
 
bool is_constant () const
 
bool is_permute () const
 
bool has_fixed_points () const
 
bool operator== (const Array< Function * > &RHS) const
 
bool operator!= (const Array< Function * > &RHS) const
 
bool operator< (const Array< Function * > &RHS) const
 
bool operator> (const Array< Function * > &RHS) const
 
bool operator<= (const Array< Function * > &RHS) const
 
bool operator>= (const Array< Function * > &RHS) const
 
bool all_in (const Array &superset) const
 
Index coincidence (const Array &superset) const
 
Index incidences (const Function * &test_elem) const
 
Index find (const Function * &test_elem) const
 
Index reverse_find (const Function * &test_elem) const
 Same as find, but starts from the last element of the Array. More...
 
Index almost_find (const Function * &test_elem, double tol_val=TOL) const
 
Index almost_reverse_find (const Function * &test_elem, double tol_val=TOL) const
 Same as almost_find, but start from the last element of the Array. More...
 
bool contains (const Function * &test_elem) const
 
bool almost_contains (const Function * &test_elem, double tol_val=TOL) const
 
void print_column (std::ostream &stream, const std::string &indent="") const
 

Static Private Member Functions

static Index _new_ID ()
 
static Index ARRAY_MIN_EXTRA_SPACE ()
 
static double ARRAY_EXTENSION_FACTOR ()
 
static ReturnArray< Function * > sequence (const Function * &initial, const Function * &final)
 
static ReturnArray< Function * > sequence (const Function * &initial, const Function * &increment, const Function * &final)
 

Private Attributes

SymGroupRepID m_basis_symrep_ID
 
std::string m_name
 
Index m_basis_ID
 
std::vector< std::shared_ptr< BasisSet > > m_argument
 
Index m_min_poly_order
 
Index m_max_poly_order
 
std::vector< Indexm_dof_IDs
 
Array< SubBasism_dof_subbases
 
Array< PolyConstraintm_min_poly_constraints
 
Array< PolyConstraintm_max_poly_constraints
 
std::vector< double > m_eval_cache
 
std::vector< double > m_deval_cache
 
Index N
 
Index NMax
 
Function * * Vals
 

Friends

BasisSet direct_sum (BasisSet::ArgList const &_subs)
 

Member Typedef Documentation

◆ ArgList

Definition at line 50 of file BasisSet.hh.

◆ const_iterator

typedef const Function * * CASM::Array< Function * >::const_iterator
inherited

Definition at line 73 of file Array.hh.

◆ iterator

typedef Function * * CASM::Array< Function * >::iterator
inherited

Definition at line 72 of file Array.hh.

◆ PolyConstraint

Definition at line 52 of file BasisSet.hh.

◆ size_type

typedef Index CASM::Array< Function * >::size_type
inherited

Definition at line 71 of file Array.hh.

◆ SubBasis

Definition at line 51 of file BasisSet.hh.

◆ value_type

typedef Function * CASM::Array< Function * >::value_type
inherited

Definition at line 70 of file Array.hh.

◆ X1

typedef Array<Function * > CASM::Array< Function * >::X1
inherited

Definition at line 60 of file Array.hh.

◆ X2

typedef Array<X1> CASM::Array< Function * >::X2
inherited

Definition at line 61 of file Array.hh.

◆ X3

typedef Array<X2> CASM::Array< Function * >::X3
inherited

Definition at line 62 of file Array.hh.

◆ X4

typedef Array<X3> CASM::Array< Function * >::X4
inherited

Definition at line 63 of file Array.hh.

◆ X5

typedef Array<X4> CASM::Array< Function * >::X5
inherited

Definition at line 64 of file Array.hh.

◆ X6

typedef Array<X5> CASM::Array< Function * >::X6
inherited

Definition at line 65 of file Array.hh.

◆ X7

typedef Array<X6> CASM::Array< Function * >::X7
inherited

Definition at line 66 of file Array.hh.

◆ X8

typedef Array<X7> CASM::Array< Function * >::X8
inherited

Definition at line 67 of file Array.hh.

◆ X9

typedef Array<X8> CASM::Array< Function * >::X9
inherited

Definition at line 68 of file Array.hh.

Constructor & Destructor Documentation

◆ BasisSet() [1/2]

CASM::BasisSet::BasisSet ( const std::string &  name = "",
ArgList const &  _args = ArgList() 
)
inline

Definition at line 58 of file BasisSet.hh.

◆ BasisSet() [2/2]

CASM::BasisSet::BasisSet ( const BasisSet init_basis)

Definition at line 47 of file BasisSet.cc.

◆ ~BasisSet()

CASM::BasisSet::~BasisSet ( )

Definition at line 117 of file BasisSet.cc.

Member Function Documentation

◆ _at()

Function*& CASM::BasisSet::_at ( Index  i)
inlineprivate

Definition at line 281 of file BasisSet.hh.

◆ _back()

Function* CASM::BasisSet::_back ( )
inlineprivate

Definition at line 278 of file BasisSet.hh.

◆ _deval_to_cache()

void CASM::BasisSet::_deval_to_cache ( const DoF::RemoteHandle dvar) const
private

Remotely evaluate each basis function and add it to the respective value in cumulant

Definition at line 315 of file BasisSet.cc.

◆ _eval_to_cache()

void CASM::BasisSet::_eval_to_cache ( ) const
private

Remotely evaluate each basis function and add it to the respective value in cumulant

Definition at line 309 of file BasisSet.cc.

◆ _linear_combination()

Function * CASM::BasisSet::_linear_combination ( const Eigen::VectorXd &  coeffs) const
private

Definition at line 1014 of file BasisSet.cc.

◆ _max_poly_constraints()

Array<PolyConstraint>& CASM::BasisSet::_max_poly_constraints ( )
inlineprivate

Definition at line 307 of file BasisSet.hh.

◆ _min_poly_constraints()

Array<PolyConstraint>& CASM::BasisSet::_min_poly_constraints ( )
inlineprivate

Definition at line 304 of file BasisSet.hh.

◆ _new_ID()

static Index CASM::BasisSet::_new_ID ( )
inlinestaticprivate

Definition at line 283 of file BasisSet.hh.

◆ _refresh_ID()

void CASM::BasisSet::_refresh_ID ( )
inlineprivate

Definition at line 288 of file BasisSet.hh.

◆ _set_arguments() [1/2]

void CASM::BasisSet::_set_arguments ( const ArgList new_args)
private

Definition at line 1098 of file BasisSet.cc.

◆ _set_arguments() [2/2]

void CASM::BasisSet::_set_arguments ( const std::vector< std::shared_ptr< BasisSet > > &  new_args)
inlineprivate

Definition at line 296 of file BasisSet.hh.

◆ _update_dof_IDs()

bool CASM::BasisSet::_update_dof_IDs ( const std::vector< Index before_IDs,
const std::vector< Index > &  after_IDs 
)
private

Definition at line 350 of file BasisSet.cc.

◆ accept()

bool CASM::BasisSet::accept ( const FunctionVisitor visitor)

Definition at line 234 of file BasisSet.cc.

◆ add_max_poly_constraint()

void CASM::BasisSet::add_max_poly_constraint ( const Array< Index > &  expons,
Index  expon_sum 
)
inline

Definition at line 131 of file BasisSet.hh.

◆ add_min_poly_constraint()

void CASM::BasisSet::add_min_poly_constraint ( const Array< Index > &  expons,
Index  expon_sum 
)
inline

Definition at line 127 of file BasisSet.hh.

◆ all_in()

bool CASM::Array< Function * >::all_in ( const Array< Function * > &  superset) const
inherited

Definition at line 230 of file Array.hh.

◆ almost_contains()

bool CASM::Array< Function * >::almost_contains ( const Function * &  test_elem,
double  tol_val = TOL 
) const
inlineinherited

Definition at line 240 of file Array.hh.

◆ almost_find()

Index CASM::Array< Function * >::almost_find ( const Function * &  test_elem,
double  tol_val = TOL 
) const
inherited

Definition at line 236 of file Array.hh.

◆ almost_reverse_find()

Index CASM::Array< Function * >::almost_reverse_find ( const Function * &  test_elem,
double  tol_val = TOL 
) const
inherited

Same as almost_find, but start from the last element of the Array.

Definition at line 238 of file Array.hh.

◆ append() [1/2]

Array< Function * > & CASM::Array< Function * >::append ( const Array< Function * > &  new_tail)
inherited

Definition at line 194 of file Array.hh.

◆ append() [2/2]

void CASM::BasisSet::append ( const BasisSet RHS,
std::function< Function *(Function *)> const &  transform = CASM_TMP::UnaryIdentity<Function *>() 
)

Append contents of.

Parameters
RHSonto this BasisSet RHS must have the same arguments as *this and must not introduce anynew DoF dependencies (unless this BasisSet is empty, in which case it assumes the DoF dependencies of RHS)

Definition at line 134 of file BasisSet.cc.

◆ append_unique()

Array< Function * > & CASM::Array< Function * >::append_unique ( const Array< Function * > &  new_tail)
inherited

Definition at line 195 of file Array.hh.

◆ apply_sym()

BasisSet & CASM::BasisSet::apply_sym ( const SymOp op,
int  dependency_layer = 1 
)

Definition at line 1073 of file BasisSet.cc.

◆ arguments()

std::vector<std::shared_ptr<BasisSet> > const& CASM::BasisSet::arguments ( ) const
inline

Definition at line 76 of file BasisSet.hh.

◆ ARRAY_EXTENSION_FACTOR()

static double CASM::Array< Function * >::ARRAY_EXTENSION_FACTOR ( )
inlinestaticprivateinherited

Definition at line 48 of file Array.hh.

◆ ARRAY_MIN_EXTRA_SPACE()

static Index CASM::Array< Function * >::ARRAY_MIN_EXTRA_SPACE ( )
inlinestaticprivateinherited

Definition at line 47 of file Array.hh.

◆ as_perm_inverse()

ReturnArray< Index > CASM::Array< Function * >::as_perm_inverse
inherited

Construct permutation that undoes the permutation performed by 'this' Inverse operation is calculated the same, regardless of permutation convention

Definition at line 203 of file Array.hh.

◆ as_perm_transform_by()

ReturnArray< Index > CASM::Array< Function * >::as_perm_transform_by ( const Array< Index > &  trans_perm) const
inherited

Given N distinct objects labeled from 0 to N-1, a permutation 'P_permute' that physically permutes the objects (with labels) in terms of their labels, and a permutation 'L_permute' that permutes their labels only, rewrite 'P_permute' in terms of the relabeling induced by 'L_permute' Rearrange 'this' permutation to form an equivalent permutation for any list that has already been permuted by trans_perm. Does not (nearly certain of this) depend on permutation convention

Definition at line 204 of file Array.hh.

◆ at() [1/2]

Function * & CASM::Array< Function * >::at ( Index  ind)
inlineinherited

Definition at line 140 of file Array.hh.

◆ at() [2/2]

const Function * & CASM::Array< Function * >::at ( Index  ind) const
inlineinherited

Definition at line 145 of file Array.hh.

◆ back() [1/2]

Function * & CASM::Array< Function * >::back ( )
inlineinherited

Definition at line 160 of file Array.hh.

◆ back() [2/2]

Function const* CASM::BasisSet::back ( ) const
inline

Definition at line 101 of file BasisSet.hh.

◆ basis_symrep_ID()

SymGroupRepID CASM::BasisSet::basis_symrep_ID ( ) const
inline

Definition at line 80 of file BasisSet.hh.

◆ begin() [1/2]

Function * * CASM::Array< Function * >::begin ( )
inlineinherited

Definition at line 167 of file Array.hh.

◆ begin() [2/2]

Function * const* CASM::Array< Function * >::begin ( ) const
inlineinherited

Definition at line 164 of file Array.hh.

◆ calc_invariant_functions()

void CASM::BasisSet::calc_invariant_functions ( const SymGroup head_sym_group)

Definition at line 947 of file BasisSet.cc.

◆ calc_normal_basis()

BasisSet CASM::BasisSet::calc_normal_basis ( const SymGroup head_sym_group,
Eigen::MatrixXd &  trans_mat 
) const

Definition at line 971 of file BasisSet.cc.

◆ cbegin()

Function * const* CASM::Array< Function * >::cbegin ( ) const
inlineinherited

Definition at line 166 of file Array.hh.

◆ cend()

Function * const* CASM::Array< Function * >::cend ( ) const
inlineinherited

Definition at line 172 of file Array.hh.

◆ clear()

void CASM::BasisSet::clear ( )

Definition at line 124 of file BasisSet.cc.

◆ clear_formulae()

void CASM::BasisSet::clear_formulae ( )
inline

Definition at line 117 of file BasisSet.hh.

◆ coincidence()

Index CASM::Array< Function * >::coincidence ( const Array< Function * > &  superset) const
inherited

Definition at line 231 of file Array.hh.

◆ compare()

bool CASM::BasisSet::compare ( const BasisSet RHS) const

Definition at line 284 of file BasisSet.cc.

◆ construct_harmonic_polynomials()

void CASM::BasisSet::construct_harmonic_polynomials ( const ArgList tsubs,
Index  order,
Index  min_order,
bool  even_only 
)

Definition at line 867 of file BasisSet.cc.

◆ construct_invariant_polynomials()

void CASM::BasisSet::construct_invariant_polynomials ( BasisSet::ArgList const &  tsubs,
const SymGroup head_sym_group,
Index  order,
Index  min_dof_order = 1 
)

Definition at line 479 of file BasisSet.cc.

◆ construct_orthonormal_discrete_functions() [1/2]

void CASM::BasisSet::construct_orthonormal_discrete_functions ( const DiscreteDoF allowed_occs,
const Eigen::MatrixXd &  gram_mat,
Index  basis_ind,
const SymGroup symgroup 
)

Definition at line 631 of file BasisSet.cc.

◆ construct_orthonormal_discrete_functions() [2/2]

void CASM::BasisSet::construct_orthonormal_discrete_functions ( const DiscreteDoF allowed_occs,
const std::vector< double > &  occ_probs,
Index  basis_ind,
const SymGroup symgroup 
)

Definition at line 807 of file BasisSet.cc.

◆ construct_polynomials_by_order()

void CASM::BasisSet::construct_polynomials_by_order ( BasisSet::ArgList const &  tsubs,
Index  order 
)

Construct a polynomial basis set that contains all allowed polynomials of functions specified by tsubs if tsubs specifies, e.g., {{x,y,z}, {x,y,z}, {w,v}}, the resulting basis set will be {x*x*w, x*x*v, x*y*w+y*x*w,..., z*z*v}

Definition at line 454 of file BasisSet.cc.

◆ contains()

bool CASM::Array< Function * >::contains ( const Function * &  test_elem) const
inlineinherited

Definition at line 239 of file Array.hh.

◆ dependency_layer()

int CASM::BasisSet::dependency_layer ( ) const

Definition at line 300 of file BasisSet.cc.

◆ deval_cache()

const double& CASM::BasisSet::deval_cache ( Index  i) const
inline

Definition at line 108 of file BasisSet.hh.

◆ dof_IDs()

const std::vector<Index>& CASM::BasisSet::dof_IDs ( ) const
inline

Definition at line 144 of file BasisSet.hh.

◆ dof_sub_bases()

const Array<SubBasis>& CASM::BasisSet::dof_sub_bases ( ) const
inline

Definition at line 148 of file BasisSet.hh.

◆ dof_sub_basis()

const SubBasis& CASM::BasisSet::dof_sub_basis ( Index  i) const
inline

Definition at line 146 of file BasisSet.hh.

◆ end() [1/2]

Function * * CASM::Array< Function * >::end ( )
inlineinherited

Definition at line 173 of file Array.hh.

◆ end() [2/2]

Function * const* CASM::Array< Function * >::end ( ) const
inlineinherited

Definition at line 170 of file Array.hh.

◆ eval_cache()

const double& CASM::BasisSet::eval_cache ( Index  i) const
inline

Definition at line 103 of file BasisSet.hh.

◆ find()

Index CASM::Array< Function * >::find ( const Function * &  test_elem) const
inherited

Definition at line 233 of file Array.hh.

◆ from_json()

void CASM::BasisSet::from_json ( const jsonParser json)

◆ Gaussian_Elim()

bool CASM::BasisSet::Gaussian_Elim ( )

Definition at line 1183 of file BasisSet.cc.

◆ get_symmetry_representation()

void CASM::BasisSet::get_symmetry_representation ( const SymGroup head_sym_group) const

Definition at line 1243 of file BasisSet.cc.

◆ Gram_Schmidt()

bool CASM::BasisSet::Gram_Schmidt ( )

Definition at line 1133 of file BasisSet.cc.

◆ has_fixed_points()

bool CASM::Array< Function * >::has_fixed_points
inherited

Checks whether any values are equal to their index – only valid for Array<Index>

Definition at line 219 of file Array.hh.

◆ incidences()

Index CASM::Array< Function * >::incidences ( const Function * &  test_elem) const
inherited

Definition at line 232 of file Array.hh.

◆ independent_sub_bases()

std::vector< std::set< Index > > CASM::BasisSet::independent_sub_bases ( ) const

Definition at line 408 of file BasisSet.cc.

◆ ipermute()

Array< Function * > & CASM::Array< Function * >::ipermute ( const Array< Index > &  perm_array)
inherited

Definition at line 200 of file Array.hh.

◆ is_ascending()

bool CASM::Array< Function * >::is_ascending
inherited

Definition at line 215 of file Array.hh.

◆ is_constant()

bool CASM::Array< Function * >::is_constant
inherited

Definition at line 217 of file Array.hh.

◆ is_descending()

bool CASM::Array< Function * >::is_descending
inherited

Definition at line 216 of file Array.hh.

◆ is_permute()

bool CASM::Array< Function * >::is_permute
inherited

Checks that Array contains values from 0 to perm_array.size()-1 and that no value is repeated does not depend on definition of permutation convention

Definition at line 218 of file Array.hh.

◆ make_orthogonal_to() [1/2]

bool CASM::BasisSet::make_orthogonal_to ( const BasisSet ortho_basis)

Definition at line 1269 of file BasisSet.cc.

◆ make_orthogonal_to() [2/2]

bool CASM::BasisSet::make_orthogonal_to ( Function const *  ortho_func)

Definition at line 1279 of file BasisSet.cc.

◆ max()

const Function * & CASM::Array< Function * >::max
inherited

Definition at line 207 of file Array.hh.

◆ max_poly_constraints()

const Array<PolyConstraint>& CASM::BasisSet::max_poly_constraints ( ) const
inline

Definition at line 88 of file BasisSet.hh.

◆ max_poly_order()

Index CASM::BasisSet::max_poly_order ( ) const
inline

Definition at line 82 of file BasisSet.hh.

◆ min()

const Function * & CASM::Array< Function * >::min
inherited

Definition at line 208 of file Array.hh.

◆ min_poly_constraints()

const Array<PolyConstraint>& CASM::BasisSet::min_poly_constraints ( ) const
inline

Definition at line 85 of file BasisSet.hh.

◆ min_poly_order()

Index CASM::BasisSet::min_poly_order ( ) const
inline

Definition at line 83 of file BasisSet.hh.

◆ name()

const std::string& CASM::BasisSet::name ( ) const
inline

Definition at line 74 of file BasisSet.hh.

◆ next_permute()

bool CASM::Array< Function * >::next_permute
inherited

Definition at line 201 of file Array.hh.

◆ operator!=()

bool CASM::Array< Function * >::operator!= ( const Array< Function * > &  RHS) const
inlineinherited

Definition at line 224 of file Array.hh.

◆ operator<()

bool CASM::Array< Function * >::operator< ( const Array< Function * > &  RHS) const
inherited

Definition at line 225 of file Array.hh.

◆ operator<=()

bool CASM::Array< Function * >::operator<= ( const Array< Function * > &  RHS) const
inlineinherited

Definition at line 227 of file Array.hh.

◆ operator=()

const BasisSet & CASM::BasisSet::operator= ( const BasisSet RHS)

Definition at line 79 of file BasisSet.cc.

◆ operator==()

bool CASM::Array< Function * >::operator== ( const Array< Function * > &  RHS) const
inherited

Definition at line 223 of file Array.hh.

◆ operator>()

bool CASM::Array< Function * >::operator> ( const Array< Function * > &  RHS) const
inherited

Definition at line 226 of file Array.hh.

◆ operator>=()

bool CASM::Array< Function * >::operator>= ( const Array< Function * > &  RHS) const
inlineinherited

Definition at line 228 of file Array.hh.

◆ operator[]() [1/2]

Function const* CASM::BasisSet::operator[] ( Index  i) const
inline

Definition at line 97 of file BasisSet.hh.

◆ operator[]() [2/2]

Function * & CASM::Array< Function * >::operator[] ( Index  ind)
inlineinherited

Definition at line 155 of file Array.hh.

◆ permute()

Array< Function * > & CASM::Array< Function * >::permute ( const Array< Index > &  perm_array)
inherited

Definition at line 199 of file Array.hh.

◆ poly_quotient_set()

BasisSet CASM::BasisSet::poly_quotient_set ( const Function divisor) const

Definition at line 198 of file BasisSet.cc.

◆ pop_back()

void CASM::Array< Function * >::pop_back ( )
inlineinherited

Definition at line 178 of file Array.hh.

◆ print_column()

void CASM::Array< Function * >::print_column ( std::ostream &  stream,
const std::string &  indent = "" 
) const
inherited

Definition at line 245 of file Array.hh.

◆ push_back() [1/2]

void CASM::Array< Function * >::push_back ( const Function * &  toPush)
inherited

Definition at line 176 of file Array.hh.

◆ push_back() [2/2]

void CASM::BasisSet::push_back ( Function new_func)
private

Definition at line 998 of file BasisSet.cc.

◆ register_remotes()

int CASM::BasisSet::register_remotes ( const std::vector< DoF::RemoteHandle > &  remote_handles)

Definition at line 440 of file BasisSet.cc.

◆ remote_deval_and_add_to()

void CASM::BasisSet::remote_deval_and_add_to ( Array< double > &  cumulant,
const DoF::RemoteHandle dvar 
) const

Remotely evaluate derivative of each basis function (w.r.t. dvar) and add it to the respective value in cumulant

Definition at line 271 of file BasisSet.cc.

◆ remote_deval_to()

template<typename IteratorType >
void CASM::BasisSet::remote_deval_to ( IteratorType  result_begin,
IteratorType  result_end,
const DoF::RemoteHandle dvar 
) const

Remotely evaluate derivative of each basis function (w.r.t. dvar) and add it to the respective value in cumulant

Remotely evaluate derivative of each basis function (w.r.t. dvar) and add it to the respective value in result

Definition at line 339 of file BasisSet.hh.

◆ remote_eval_and_add_to()

void CASM::BasisSet::remote_eval_and_add_to ( Array< double > &  cumulant) const

Remotely evaluate each basis function and add it to the respective value in cumulant

Definition at line 259 of file BasisSet.cc.

◆ remote_eval_to()

template<typename IteratorType >
void CASM::BasisSet::remote_eval_to ( IteratorType  result_begin,
IteratorType  result_end 
) const

Remotely evaluate each basis function and add it to the respective value in cumulant

Definition at line 323 of file BasisSet.hh.

◆ remove()

void CASM::Array< Function * >::remove ( Index  ind)
inherited

Definition at line 181 of file Array.hh.

◆ reserve()

void CASM::Array< Function * >::reserve ( Index  new_max)
inherited

Definition at line 188 of file Array.hh.

◆ reshape_and_append()

void CASM::BasisSet::reshape_and_append ( const BasisSet RHS,
std::vector< Index > const &  compatibility_map 
)

◆ resize() [1/2]

void CASM::Array< Function * >::resize ( Index  new_N)
inherited

Definition at line 186 of file Array.hh.

◆ resize() [2/2]

void CASM::Array< Function * >::resize ( Index  new_N,
const Function * &  fill_val 
)
inherited

Definition at line 187 of file Array.hh.

◆ reverse_find()

Index CASM::Array< Function * >::reverse_find ( const Function * &  test_elem) const
inherited

Same as find, but starts from the last element of the Array.

Definition at line 235 of file Array.hh.

◆ satisfies_exponent_constraints()

bool CASM::BasisSet::satisfies_exponent_constraints ( const Array< Index > &  expons) const

Definition at line 211 of file BasisSet.cc.

◆ sequence() [1/2]

ReturnArray< Function * > CASM::Array< Function * >::sequence ( const Function * &  initial,
const Function * &  final 
)
staticinherited

Returns an array with the sequence (initial, ++initial, ..., final), inclusive requires that operator<() and operator++() are defined on type T

Returns an array with the sequence (initial, ++initial, ..., final), inclusive

Definition at line 123 of file Array.hh.

◆ sequence() [2/2]

ReturnArray< Function * > CASM::Array< Function * >::sequence ( const Function * &  initial,
const Function * &  increment,
const Function * &  final 
)
staticinherited

Returns an array with the sequence (initial, initial+increment, ..., final?), inclusive if final is in the sequence requires that operator<() and operator+=() are defined on type T

Returns an array with the sequence (initial, initial+increment, ..., final?), inclusive if final is in the sequence

Definition at line 128 of file Array.hh.

◆ set_basis_symrep_ID()

void CASM::BasisSet::set_basis_symrep_ID ( SymGroupRepID  new_ID)
inline

Definition at line 125 of file BasisSet.hh.

◆ set_dof_IDs()

void CASM::BasisSet::set_dof_IDs ( const std::vector< Index > &  new_IDs)

Definition at line 344 of file BasisSet.cc.

◆ set_name()

void CASM::BasisSet::set_name ( const std::string &  new_name)
inline

Definition at line 123 of file BasisSet.hh.

◆ set_variable_basis()

void CASM::BasisSet::set_variable_basis ( const DoFSet _dof_set)

Define the basis set to contain only variables (e.g., x,y,z)

Definition at line 322 of file BasisSet.cc.

◆ shared_copy()

std::shared_ptr<BasisSet> CASM::BasisSet::shared_copy ( ) const
inline

Definition at line 93 of file BasisSet.hh.

◆ size()

Index CASM::Array< Function * >::size ( ) const
inlineinherited

Definition at line 131 of file Array.hh.

◆ sort() [1/3]

void CASM::Array< Function * >::sort
inherited

Definition at line 193 of file Array.hh.

◆ sort() [2/3]

void CASM::Array< Function * >::sort ( Array< Index > &  ind_order)
inherited

Definition at line 192 of file Array.hh.

◆ sort() [3/3]

void CASM::Array< Function * >::sort ( const CompareType &  comp)
inherited

quicksort sorting algorithm

  • assumes that CompareType::compare(T a_thing, T b_thing) exists
  • End results is that CompareType::compare(at(i), at(j)) is true for all i<j

Definition at line 191 of file Array.hh.

◆ sub_array()

ReturnArray< Function * > CASM::Array< Function * >::sub_array ( Index  ind_begin,
Index  ind_end 
) const
inherited

Definition at line 211 of file Array.hh.

◆ sum()

Function * CASM::Array< Function * >::sum
inherited

Definition at line 213 of file Array.hh.

◆ swap()

void CASM::Array< Function * >::swap ( Array< Function * > &  RHS)
inherited

Definition at line 136 of file Array.hh.

◆ swap_elem()

void CASM::Array< Function * >::swap_elem ( Index  i,
Index  j 
)
inlineinherited

Definition at line 197 of file Array.hh.

◆ to_json()

jsonParser & CASM::BasisSet::to_json ( jsonParser json) const

Definition at line 1365 of file BasisSet.cc.

◆ transform_copy()

BasisSet CASM::BasisSet::transform_copy ( const Eigen::MatrixXd &  trans_mat) const

Essentially, perform a change of basis on BasisSet as defined by trans_mat. Returns a BasisSet whos elements are linear combinations of the original BasisSet. The linear combinations are specified by the ROWS of trans_matx

Definition at line 1051 of file BasisSet.cc.

Friends And Related Function Documentation

◆ direct_sum

BasisSet direct_sum ( BasisSet::ArgList const &  _subs)
friend

Definition at line 1324 of file BasisSet.cc.

Member Data Documentation

◆ m_argument

std::vector<std::shared_ptr<BasisSet> > CASM::BasisSet::m_argument
private

Definition at line 252 of file BasisSet.hh.

◆ m_basis_ID

Index CASM::BasisSet::m_basis_ID
private

Definition at line 250 of file BasisSet.hh.

◆ m_basis_symrep_ID

SymGroupRepID CASM::BasisSet::m_basis_symrep_ID
mutableprivate

Definition at line 247 of file BasisSet.hh.

◆ m_deval_cache

std::vector<double> CASM::BasisSet::m_deval_cache
mutableprivate

Definition at line 269 of file BasisSet.hh.

◆ m_dof_IDs

std::vector<Index> CASM::BasisSet::m_dof_IDs
private

Definition at line 264 of file BasisSet.hh.

◆ m_dof_subbases

Array<SubBasis> CASM::BasisSet::m_dof_subbases
private

Definition at line 265 of file BasisSet.hh.

◆ m_eval_cache

std::vector<double> CASM::BasisSet::m_eval_cache
mutableprivate

Definition at line 268 of file BasisSet.hh.

◆ m_max_poly_constraints

Array<PolyConstraint> CASM::BasisSet::m_max_poly_constraints
private

Definition at line 266 of file BasisSet.hh.

◆ m_max_poly_order

Index CASM::BasisSet::m_max_poly_order
private

Definition at line 262 of file BasisSet.hh.

◆ m_min_poly_constraints

Array<PolyConstraint> CASM::BasisSet::m_min_poly_constraints
private

Definition at line 266 of file BasisSet.hh.

◆ m_min_poly_order

Index CASM::BasisSet::m_min_poly_order
private

Definition at line 262 of file BasisSet.hh.

◆ m_name

std::string CASM::BasisSet::m_name
private

Definition at line 249 of file BasisSet.hh.

◆ N

Index CASM::Array< Function * >::N
privateinherited

Definition at line 53 of file Array.hh.

◆ NMax

Index CASM::Array< Function * >::NMax
privateinherited

Definition at line 54 of file Array.hh.

◆ Vals

Function * * CASM::Array< Function * >::Vals
privateinherited

Definition at line 55 of file Array.hh.


The documentation for this class was generated from the following files: