Lhs for U dH.
More...
#include <tutorials/vec-5/src/FreeSurfaceOps.hpp>
|
| OpLhsU_dH (const std::string field_name_u, const std::string field_name_h, boost::shared_ptr< MatrixDouble > dot_u_ptr, boost::shared_ptr< MatrixDouble > u_ptr, boost::shared_ptr< MatrixDouble > grad_u_ptr, boost::shared_ptr< VectorDouble > h_ptr, boost::shared_ptr< VectorDouble > g_ptr) |
|
MoFEMErrorCode | iNtegrate (EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data) |
|
|
boost::shared_ptr< MatrixDouble > | dotUPtr |
|
boost::shared_ptr< MatrixDouble > | uPtr |
|
boost::shared_ptr< MatrixDouble > | gradUPtr |
|
boost::shared_ptr< VectorDouble > | hPtr |
|
boost::shared_ptr< VectorDouble > | gPtr |
|
Lhs for U dH.
- Examples
- free_surface.cpp.
Definition at line 611 of file FreeSurfaceOps.hpp.
◆ OpLhsU_dH()
FreeSurfaceOps::OpLhsU_dH::OpLhsU_dH |
( |
const std::string |
field_name_u, |
|
|
const std::string |
field_name_h, |
|
|
boost::shared_ptr< MatrixDouble > |
dot_u_ptr, |
|
|
boost::shared_ptr< MatrixDouble > |
u_ptr, |
|
|
boost::shared_ptr< MatrixDouble > |
grad_u_ptr, |
|
|
boost::shared_ptr< VectorDouble > |
h_ptr, |
|
|
boost::shared_ptr< VectorDouble > |
g_ptr |
|
) |
| |
|
inline |
Definition at line 613 of file FreeSurfaceOps.hpp.
620 AssemblyDomainEleOp::OPROWCOL),
624 assembleTranspose =
false;
◆ iNtegrate()
Definition at line 627 of file FreeSurfaceOps.hpp.
631 const double vol = getMeasure();
632 auto t_dot_u = getFTensor1FromMat<U_FIELD_DIM>(*
dotUPtr);
633 auto t_u = getFTensor1FromMat<U_FIELD_DIM>(*
uPtr);
634 auto t_grad_u = getFTensor2FromMat<U_FIELD_DIM, SPACE_DIM>(*
gradUPtr);
637 auto t_coords = getFTensor1CoordsAtGaussPts();
639 auto t_row_base = row_data.getFTensor0N();
640 auto t_row_diff_base = row_data.getFTensor1DiffN<
SPACE_DIM>();
642 auto t_w = getFTensor0IntegrationWeight();
652 t_buoyancy_dh(
i) = 0;
655 for (
int gg = 0; gg != nbIntegrationPts; gg++) {
657 const double r = t_coords(0);
664 auto t_D_dh =
get_D(2 * mu_dh);
666 t_inertia_force_dh(
i) = (alpha * rho_dh) * t_dot_u(
i);
668 t_gravity_dh(
SPACE_DIM - 1) = (alpha * rho_dh *
a0);
669 t_convection_dh(
i) = (rho_dh * alpha) * (t_u(
j) * t_grad_u(
i,
j));
670 const double t_phase_force_g_dh = -alpha *
kappa * t_g;
671 t_forces_dh(
i) = t_inertia_force_dh(
i) + t_buoyancy_dh(
i) +
672 t_gravity_dh(
i) + t_convection_dh(
i);
674 t_stress_dh(
i,
j) = alpha * (t_D_dh(
i,
j,
k,
l) * t_grad_u(
k,
l));
680 getFTensor1FromMat<U_FIELD_DIM, 1>(locMat, rr *
U_FIELD_DIM);
681 auto t_col_base = col_data.getFTensor0N(gg, 0);
682 auto t_col_diff_base = col_data.getFTensor1DiffN<
SPACE_DIM>(gg, 0);
684 for (
int cc = 0; cc != nbCols; ++cc) {
686 const double bb = t_row_base * t_col_base;
687 t_mat(
i) += t_forces_dh(
i) * bb;
688 t_mat(
i) += (t_phase_force_g_dh * t_row_base) * t_col_diff_base(
i);
689 t_mat(
i) += (t_row_diff_base(
j) * t_col_base) * t_stress_dh(
i,
j);
692 t_mat(0) += (bb * (alpha / t_coords(0))) * (2 * mu_dh * t_u(0));
704 for (; rr < nbRowBaseFunctions; ++rr) {
◆ dotUPtr
boost::shared_ptr<MatrixDouble> FreeSurfaceOps::OpLhsU_dH::dotUPtr |
|
private |
◆ gPtr
boost::shared_ptr<VectorDouble> FreeSurfaceOps::OpLhsU_dH::gPtr |
|
private |
◆ gradUPtr
boost::shared_ptr<MatrixDouble> FreeSurfaceOps::OpLhsU_dH::gradUPtr |
|
private |
◆ hPtr
boost::shared_ptr<VectorDouble> FreeSurfaceOps::OpLhsU_dH::hPtr |
|
private |
◆ uPtr
boost::shared_ptr<MatrixDouble> FreeSurfaceOps::OpLhsU_dH::uPtr |
|
private |
The documentation for this struct was generated from the following file: