GHOST
Public Member Functions | Protected Member Functions | List of all members
ghost::AuxiliaryData Class Referenceabstract

#include <auxiliary_data.hpp>

Inheritance diagram for ghost::AuxiliaryData:
Inheritance graph
Collaboration diagram for ghost::AuxiliaryData:
Collaboration graph

Public Member Functions

 AuxiliaryData ()
 Constructor instanciating an empty vector of variable IDs. More...
 
 AuxiliaryData (const std::vector< int > &variables_index)
 
 AuxiliaryData (const std::vector< Variable > &variables)
 
 AuxiliaryData (const AuxiliaryData &other)=default
 Default copy contructor. More...
 
 AuxiliaryData (AuxiliaryData &&other)=default
 Default move contructor. More...
 
AuxiliaryDataoperator= (const AuxiliaryData &other)=delete
 Copy assignment operator disabled. More...
 
AuxiliaryDataoperator= (AuxiliaryData &&other)=delete
 Move assignment operator disabled. More...
 
virtual ~AuxiliaryData ()=default
 Default virtual destructor. More...
 

Protected Member Functions

virtual void required_update (const std::vector< Variable * > &variables, int index, int new_value)=0
 

Detailed Description

AuxiliaryData

ghost::AuxiliaryData is a class users eventually need to derive from if they need to keep track with some auxiliary data outside variable values.

ghost::AuxiliaryData cannot be directly used to encode auxiliary data of a model, since this is an abstract class.

Derived classes would contain all data outside variable values users need to keep updated. The only method to override is required_update(variables, index, new_value), defining how data should be updated when the solver assigns the value 'new_value' to the variable 'variables[index]'.

Constructor & Destructor Documentation

◆ AuxiliaryData() [1/5]

ghost::AuxiliaryData::AuxiliaryData ( )

Constructor instanciating an empty vector of variable IDs.

◆ AuxiliaryData() [2/5]

ghost::AuxiliaryData::AuxiliaryData ( const std::vector< int > &  variables_index)

Constructor with a vector of variable IDs. This vector is internally used by AuxiliaryData to know what variables from the global variable vector it is handling.

Parameters
variablesa const reference to a vector of IDs of variables needed for the auxiliary data.

◆ AuxiliaryData() [3/5]

ghost::AuxiliaryData::AuxiliaryData ( const std::vector< Variable > &  variables)

Constructor building a vector of variable IDs by calling v->get_id() from all variables v.

Parameters
variablesa const reference to a vector of variable composing the constraint.

◆ AuxiliaryData() [4/5]

ghost::AuxiliaryData::AuxiliaryData ( const AuxiliaryData other)
default

Default copy contructor.

◆ AuxiliaryData() [5/5]

ghost::AuxiliaryData::AuxiliaryData ( AuxiliaryData &&  other)
default

Default move contructor.

◆ ~AuxiliaryData()

virtual ghost::AuxiliaryData::~AuxiliaryData ( )
virtualdefault

Default virtual destructor.

Member Function Documentation

◆ operator=() [1/2]

AuxiliaryData& ghost::AuxiliaryData::operator= ( AuxiliaryData &&  other)
delete

Move assignment operator disabled.

◆ operator=() [2/2]

AuxiliaryData& ghost::AuxiliaryData::operator= ( const AuxiliaryData other)
delete

Copy assignment operator disabled.

◆ required_update()

virtual void ghost::AuxiliaryData::required_update ( const std::vector< Variable * > &  variables,
int  index,
int  new_value 
)
protectedpure virtual

Method to handle what should happen to the auxiliary data if variables[index] is updated with the value 'new_value'.

Like any methods prefixed by 'required_', overriding this method is mandatory.

Parameters
variablesa const reference of the vector of raw pointers to variables that are relevant to the auxiliary data.
indexan integer to get the variable 'variables[index]' that has been updated by the solver.
new_valuean integer to know what is the new value of 'variables[index]'.

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