8 : density_(std::make_shared<
Density>())
13 : density_(std::move(density))
23 for (
int q = 0; q < data.
da.size(); ++q)
30 Eigen::Matrix<double, Eigen::Dynamic, 1, 0, 9, 1> res(
size() *
size(), 1);
32 for (
int i = 0; i <
size(); ++i)
33 res(i *
size() + i) = tmp;
41 Eigen::Matrix<double, Eigen::Dynamic, 1, 0, 3, 1> result;
50 if (
auto thermal_density = std::dynamic_pointer_cast<ThermalMassDensity>(
density_))
58 std::map<std::string, ParamFunc> res;
59 if (
auto thermal_density = std::dynamic_pointer_cast<ThermalMassDensity>(
density_))
62 return thermal_density->rho(p, t, e);
65 return thermal_density->heat_capacity(p, t, e);
68 return this->
density()(uv, p, t, e);
74 return this->
density()(uv, p, t, e);
83 Eigen::Matrix<double, Eigen::Dynamic, 1, 0, 9, 1> res(
size() *
size(), 1);
89 double sum_all_entries = 0;
90 double sum_all_diag_entries = 0;
91 double sum_target_diag_entries = 0;
98 for (
int q = 0; q < data.
da.size(); ++q)
102 sum_all_entries += entry;
105 sum_all_diag_entries += entry;
108 sum_target_diag_entries += entry;
114 for (
int i = 0; i <
size(); ++i)
115 res(i *
size() + i) = sum_all_entries / sum_all_diag_entries * sum_target_diag_entries;
std::string specific_heat_capacity() const
std::string density() const
std::vector< AssemblyValues > basis_values
quadrature::Quadrature quadrature
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 9, 1 > assemble(const LinearAssemblerData &data) const override
computes and returns local stiffness matrix (1x1) for bases i,j (where i,j is passed in through data)...
const ElementAssemblyValues & vals
stores the evaluation for that element
const QuadratureVector & da
contains both the quadrature weight and the change of metric in the integral
const int i
first local order
const int j
second local order
const Density & density() const
class that stores and compute density per point
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 3, 1 > compute_rhs(const AutodiffHessianPt &pt) const override
uses autodiff to compute the rhs for a fabricated solution in this case it just return pt....
virtual std::map< std::string, ParamFunc > parameters() const override
std::shared_ptr< Density > density_
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 9, 1 > assemble(const LinearAssemblerData &data) const override
computes and returns local stiffness matrix (1x1) for bases i,j (where i,j is passed in through data)...
void add_multimaterial(const int index, const json ¶ms, const Units &units, const std::string &root_path) override
inialize material parameter
Eigen::Matrix< AutodiffScalarHessian, Eigen::Dynamic, 1, 0, 3, 1 > AutodiffHessianPt
Eigen::Matrix< double, 1, Eigen::Dynamic, Eigen::RowMajor, 1, 3 > RowVectorNd