31namespace ThermoRichardsFlow
 
   35template <
typename ShapeFunction, 
int GlobalDim>
 
   57        bool const is_axially_symmetric,
 
   62        std::string_view 
const name,
 
   64        int const integration_order) 
override;
 
   68                                      int const process_id) 
override;
 
   71                              std::vector<double> 
const& local_x,
 
   72                              std::vector<double> 
const& local_x_prev,
 
   73                              std::vector<double>& local_rhs_data,
 
   74                              std::vector<double>& local_Jac_data) 
override;
 
   76    void assemble(
double const t, 
double const dt,
 
   77                  std::vector<double> 
const& local_x,
 
   78                  std::vector<double> 
const& local_x_prev,
 
   79                  std::vector<double>& local_M_data,
 
   80                  std::vector<double>& local_K_data,
 
   81                  std::vector<double>& local_rhs_data) 
override;
 
   85        unsigned const n_integration_points =
 
   88        for (
unsigned ip = 0; ip < n_integration_points; ip++)
 
   91            ip_data.pushBackState();
 
 
   96                              Eigen::VectorXd 
const& ,
 
   97                              double const , 
double const ,
 
  100        unsigned const n_integration_points =
 
  103        for (
unsigned ip = 0; ip < n_integration_points; ip++)
 
 
  110        double const t, 
double const dt, Eigen::VectorXd 
const& local_x,
 
  111        Eigen::VectorXd 
const& local_x_prev) 
override;
 
  114        const unsigned integration_point)
 const override 
  116        auto const& N = 
_ip_data[integration_point].N;
 
  119        return Eigen::Map<const Eigen::RowVectorXd>(N.data(), N.size());
 
 
  124        std::vector<GlobalVector*> 
const& x,
 
  125        std::vector<NumLib::LocalToGlobalIndexMap const*> 
const& dof_table,
 
  126        std::vector<double>& cache) 
const override;
 
  131        std::vector<GlobalVector*> 
const& x,
 
  132        std::vector<NumLib::LocalToGlobalIndexMap const*> 
const& dof_table,
 
  133        std::vector<double>& cache) 
const override;
 
  138        std::vector<GlobalVector*> 
const& x,
 
  139        std::vector<NumLib::LocalToGlobalIndexMap const*> 
const& dof_table,
 
  140        std::vector<double>& cache) 
const override;
 
  144        std::vector<GlobalVector*> 
const& x,
 
  145        std::vector<NumLib::LocalToGlobalIndexMap const*> 
const& dof_table,
 
  146        std::vector<double>& cache) 
const override;
 
  154    std::vector<IpData, Eigen::aligned_allocator<IpData>> 
_ip_data;
 
 
unsigned getNumberOfPoints() const
void postTimestepConcrete(Eigen::VectorXd const &, Eigen::VectorXd const &, double const, double const, int const) override
static const int temperature_size
NumLib::GenericIntegrationMethod const  & _integration_method
static const int temperature_index
void assembleWithJacobian(double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_rhs_data, std::vector< double > &local_Jac_data) override
std::vector< double > const & getIntPtSaturation(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
unsigned getNumberOfIntegrationPoints() const override
std::size_t setIPDataInitialConditions(std::string_view const name, double const *values, int const integration_order) override
MeshLib::Element const  & _element
ThermoRichardsFlowLocalAssembler(ThermoRichardsFlowLocalAssembler &&)=delete
ThermoRichardsFlowProcessData & _process_data
std::vector< double > const & getIntPtDryDensitySolid(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
std::vector< double > const & getIntPtDarcyVelocity(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
std::vector< double > getSaturation() const override
typename ShapeMatricesType::GlobalDimVectorType GlobalDimVectorType
void assemble(double const t, double const dt, std::vector< double > const &local_x, std::vector< double > const &local_x_prev, std::vector< double > &local_M_data, std::vector< double > &local_K_data, std::vector< double > &local_rhs_data) override
ThermoRichardsFlowLocalAssembler(ThermoRichardsFlowLocalAssembler const &)=delete
std::vector< double > const & getIntPtPorosity(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const override
void setInitialConditionsConcrete(Eigen::VectorXd const local_x, double const t, int const process_id) override
Eigen::Map< const Eigen::RowVectorXd > getShapeMatrix(const unsigned integration_point) const override
Provides the shape matrix at the given integration point.
std::vector< double > getPorosity() const override
typename ShapeMatricesType::GlobalDimMatrixType GlobalDimMatrixType
bool const _is_axially_symmetric
static const int pressure_index
void computeSecondaryVariableConcrete(double const t, double const dt, Eigen::VectorXd const &local_x, Eigen::VectorXd const &local_x_prev) override
void initializeConcrete() override
std::vector< IpData, Eigen::aligned_allocator< IpData > > _ip_data
static const int pressure_size
MatrixType< GlobalDim, GlobalDim > GlobalDimMatrixType
VectorType< GlobalDim > GlobalDimVectorType