2 #ifndef VARIBLECONTAINER_H 3 #define VARIBLECONTAINER_H 6 #include <deal.II/matrix_free/matrix_free.h> 7 #include <deal.II/matrix_free/fe_evaluation.h> 11 #include <deal.II/lac/vector.h> 32 template <
int dim,
int degree,
typename T>
41 variableContainer(
const dealii::MatrixFree<dim,double> &data, std::vector<variable_info> _varInfoList, std::vector<variable_info> _varChangeInfoList);
42 variableContainer(
const dealii::MatrixFree<dim,double> &data, std::vector<variable_info> _varInfoList);
44 variableContainer(
const dealii::MatrixFree<dim,double> &data, std::vector<variable_info> _varInfoList,
unsigned int fixed_index);
49 dealii::Tensor<2, dim, T >
get_scalar_hessian(
unsigned int global_variable_index)
const;
50 dealii::Tensor<1, dim, T >
get_vector_value(
unsigned int global_variable_index)
const;
52 dealii::Tensor<3, dim, T >
get_vector_hessian(
unsigned int global_variable_index)
const;
76 void reinit_and_eval_LHS(
const vectorType &src,
const std::vector<vectorType*> solutionSet,
unsigned int cell,
unsigned int var_being_solved);
79 void reinit(
unsigned int cell);
91 void get_JxW(dealii::AlignedVector<T> & JxW);
98 std::vector<dealii::FEEvaluation<dim,degree,degree+1,1,double> >
scalar_vars;
99 std::vector<dealii::FEEvaluation<dim,degree,degree+1,dim,double> >
vector_vars;
void reinit_and_eval_change_in_solution(const vectorType &src, unsigned int cell, unsigned int var_being_solved)
void set_vector_gradient_term_LHS(unsigned int global_variable_index, dealii::Tensor< 2, dim, T > grad)
void reinit(unsigned int cell)
dealii::Tensor< 2, dim, T > get_change_in_vector_gradient(unsigned int global_variable_index) const
std::vector< variable_info > varChangeInfoList
void integrate_and_distribute(std::vector< vectorType *> &dst)
std::vector< variable_info > varInfoList
void set_scalar_value_term_LHS(unsigned int global_variable_index, T val)
void integrate_and_distribute_change_in_solution_LHS(vectorType &dst, const unsigned int var_being_solved)
void set_scalar_value_term_RHS(unsigned int global_variable_index, T val)
void get_JxW(dealii::AlignedVector< T > &JxW)
void set_scalar_gradient_term_RHS(unsigned int global_variable_index, dealii::Tensor< 1, dim, T > grad)
variableContainer(const dealii::MatrixFree< dim, double > &data, std::vector< variable_info > _varInfoList, std::vector< variable_info > _varChangeInfoList)
dealii::Tensor< 1, dim, T > get_vector_value(unsigned int global_variable_index) const
dealii::Tensor< 2, dim, T > get_vector_gradient(unsigned int global_variable_index) const
dealii::Tensor< 3, dim, T > get_vector_hessian(unsigned int global_variable_index) const
std::vector< dealii::FEEvaluation< dim, degree, degree+1, dim, double > > vector_change_in_vars
void set_vector_value_term_LHS(unsigned int global_variable_index, dealii::Tensor< 1, dim, T > val)
dealii::parallel::distributed::Vector< double > vectorType
dealii::Tensor< 2, dim, T > get_change_in_scalar_hessian(unsigned int global_variable_index) const
dealii::Tensor< 1, dim, T > get_scalar_gradient(unsigned int global_variable_index) const
dealii::Tensor< 2, dim, T > get_scalar_hessian(unsigned int global_variable_index) const
void reinit_and_eval(const std::vector< vectorType *> &src, unsigned int cell)
unsigned int get_num_q_points()
void reinit_and_eval_LHS(const vectorType &src, const std::vector< vectorType *> solutionSet, unsigned int cell, unsigned int var_being_solved)
void set_vector_value_term_RHS(unsigned int global_variable_index, dealii::Tensor< 1, dim, T > val)
dealii::Tensor< 1, dim, T > get_change_in_vector_value(unsigned int global_variable_index) const
std::vector< dealii::FEEvaluation< dim, degree, degree+1, 1, double > > scalar_change_in_vars
dealii::Tensor< 3, dim, T > get_change_in_vector_hessian(unsigned int global_variable_index) const
std::vector< dealii::FEEvaluation< dim, degree, degree+1, dim, double > > vector_vars
T get_scalar_value(unsigned int global_variable_index) const
dealii::Point< dim, T > get_q_point_location()
T get_change_in_scalar_value(unsigned int global_variable_index) const
std::vector< dealii::FEEvaluation< dim, degree, degree+1, 1, double > > scalar_vars
dealii::Tensor< 1, dim, T > get_change_in_scalar_gradient(unsigned int global_variable_index) const
void set_scalar_gradient_term_LHS(unsigned int global_variable_index, dealii::Tensor< 1, dim, T > grad)
void set_vector_gradient_term_RHS(unsigned int global_variable_index, dealii::Tensor< 2, dim, T > grad)