v0.14.0 |
Go to the source code of this file.
Classes | |
struct | TSPrePostProc |
Set of functions called by PETSc solver used to refine and update mesh. More... | |
struct | FreeSurface |
struct | Monitor |
[Push operators to pipeline] More... | |
Enumerations | |
enum | FR { F, R } |
Functions | |
int | main (int argc, char *argv[]) |
Variables | |
static char | help [] = "...\n\n" |
int | coord_type = EXECUTABLE_COORD_TYPE |
constexpr int | BASE_DIM = 1 |
constexpr int | SPACE_DIM = 2 |
constexpr int | U_FIELD_DIM = SPACE_DIM |
constexpr AssemblyType | A = AssemblyType::PETSC |
constexpr IntegrationType | I |
FTensor::Index< 'i', SPACE_DIM > | i |
FTensor::Index< 'j', SPACE_DIM > | j |
FTensor::Index< 'k', SPACE_DIM > | k |
FTensor::Index< 'l', SPACE_DIM > | l |
constexpr auto | t_kd = FTensor::Kronecker_Delta_symmetric<int>() |
int | order = 3 |
approximation order More... | |
int | nb_levels = 4 |
int | refine_overlap = 4 |
constexpr bool | debug = true |
auto | get_start_bit |
auto | get_current_bit |
dofs bit used to do calculations More... | |
auto | get_skin_parent_bit = []() { return 2 * get_start_bit() + 2; } |
auto | get_skin_child_bit = []() { return 2 * get_start_bit() + 3; } |
auto | get_projection_bit = []() { return 2 * get_start_bit() + 4; } |
auto | get_skin_projection_bit = []() { return 2 * get_start_bit() + 5; } |
double | a0 = 980 |
double | rho_m = 0.998 |
double | mu_m = 0.010101 * 1e2 |
double | rho_p = 0.0012 |
double | mu_p = 0.000182 * 1e2 |
double | lambda = 73 |
surface tension More... | |
double | W = 0.25 |
double | h = 0.01 / 8 |
double | eta = h |
double | eta2 = eta * eta |
double | md = 1e-2 |
double | eps = 1e-12 |
double | tol = std::numeric_limits<float>::epsilon() |
double | rho_ave = (rho_p + rho_m) / 2 |
double | rho_diff = (rho_p - rho_m) / 2 |
double | mu_ave = (mu_p + mu_m) / 2 |
double | mu_diff = (mu_p - mu_m) / 2 |
double | kappa = (3. / (4. * std::sqrt(2. * W))) * (lambda / eta) |
auto | integration_rule = [](int, int, int) { return 2 * order + 1; } |
auto | cylindrical |
auto | wetting_angle_sub_stepping |
auto | my_max = [](const double x) { return (x - 1 + std::abs(x + 1)) / 2; } |
auto | my_min = [](const double x) { return (x + 1 - std::abs(x - 1)) / 2; } |
auto | cut_off = [](const double h) { return my_max(my_min(h)); } |
auto | d_cut_off |
auto | phase_function |
auto | d_phase_function_h |
auto | get_f = [](const double h) { return 4 * W * h * (h * h - 1); } |
auto | get_f_dh = [](const double h) { return 4 * W * (3 * h * h - 1); } |
auto | get_M0 = [](auto h) { return md; } |
auto | get_M0_dh = [](auto h) { return 0; } |
auto | get_M2 |
auto | get_M2_dh = [](auto h) { return -md * 2 * h; } |
auto | get_M3 |
auto | get_M3_dh |
auto | get_M = [](auto h) { return get_M0(h); } |
auto | get_M_dh = [](auto h) { return get_M0_dh(h); } |
auto | get_D |
auto | kernel_oscillation |
auto | kernel_eye |
auto | capillary_tube |
auto | bubble_device |
auto | init_h |
Initialisation function. More... | |
auto | wetting_angle = [](double water_level) { return water_level; } |
auto | bit = [](auto b) { return BitRefLevel().set(b); } |
auto | marker = [](auto b) { return BitRefLevel().set(BITREFLEVEL_SIZE - b); } |
auto | get_fe_bit |
auto | get_global_size |
auto | save_range |
auto | get_dofs_ents_by_field_name |
get entities of dofs in the problem - used for debugging More... | |
auto | get_dofs_ents_all |
get entities of dofs in the problem - used for debugging More... | |
static boost::weak_ptr< TSPrePostProc > | tsPrePostProc |
using AssemblyBoundaryEleOp = FormsIntegrators<BoundaryEleOp>::Assembly<A>::OpBase |
Definition at line 105 of file free_surface.cpp.
using AssemblyDomainEleOp = FormsIntegrators<DomainEleOp>::Assembly<A>::OpBase |
Definition at line 103 of file free_surface.cpp.
using BoundaryEle = ElementsAndOps<SPACE_DIM>::BoundaryEle |
Definition at line 91 of file free_surface.cpp.
Definition at line 93 of file free_surface.cpp.
using BoundaryNaturalBC = NaturalBC<BoundaryEleOp>::Assembly<A>::LinearForm<I> |
Definition at line 128 of file free_surface.cpp.
Definition at line 92 of file free_surface.cpp.
using DomainEle = ElementsAndOps<SPACE_DIM>::DomainEle |
Definition at line 88 of file free_surface.cpp.
Definition at line 90 of file free_surface.cpp.
Definition at line 89 of file free_surface.cpp.
using ElementsAndOps = PipelineManager::ElementsAndOpsByDim<SPACE_DIM> |
Definition at line 86 of file free_surface.cpp.
using EntData = EntitiesFieldData::EntData |
Definition at line 101 of file free_surface.cpp.
using OpBoundaryAssembleScalar = FormsIntegrators<BoundaryEleOp>::Assembly< A>::LinearForm<I>::OpBaseTimesScalar<BASE_DIM> |
Definition at line 121 of file free_surface.cpp.
using OpBoundaryMassL = FormsIntegrators<BoundaryEleOp>::Assembly< A>::BiLinearForm<I>::OpMass<BASE_DIM, 1> |
Definition at line 114 of file free_surface.cpp.
using OpDomainAssembleScalar = FormsIntegrators<DomainEleOp>::Assembly< A>::LinearForm<I>::OpBaseTimesScalar<BASE_DIM> |
Definition at line 119 of file free_surface.cpp.
using OpDomainAssembleVector = FormsIntegrators<DomainEleOp>::Assembly< A>::LinearForm<I>::OpBaseTimesVector<BASE_DIM, SPACE_DIM, 1> |
Definition at line 117 of file free_surface.cpp.
using OpDomainMassG = OpDomainMassH |
Definition at line 112 of file free_surface.cpp.
using OpDomainMassH = FormsIntegrators<DomainEleOp>::Assembly<A>::BiLinearForm< I>::OpMass<BASE_DIM, 1> |
Definition at line 110 of file free_surface.cpp.
using OpDomainMassP = OpDomainMassH |
Definition at line 111 of file free_surface.cpp.
using OpDomainMassU = FormsIntegrators<DomainEleOp>::Assembly<A>::BiLinearForm< I>::OpMass<BASE_DIM, U_FIELD_DIM> |
Definition at line 108 of file free_surface.cpp.
using OpFluidFlux = BoundaryNaturalBC::OpFlux<NaturalMeshsetType<BLOCKSET>, 1, 1> |
Definition at line 130 of file free_surface.cpp.
using OpMixScalarTimesDiv = FormsIntegrators<DomainEleOp>::Assembly< A>::BiLinearForm<I>::OpMixScalarTimesDiv<SPACE_DIM, COORD_TYPE> |
Definition at line 125 of file free_surface.cpp.
Definition at line 99 of file free_surface.cpp.
Definition at line 97 of file free_surface.cpp.
Definition at line 98 of file free_surface.cpp.
using SideEle = ElementsAndOps<SPACE_DIM>::FaceSideEle |
Definition at line 94 of file free_surface.cpp.
using SideOp = SideEle::UserDataOperator |
Definition at line 95 of file free_surface.cpp.
enum FR |
Enumerator | |
---|---|
F | |
R |
Definition at line 394 of file free_surface.cpp.
int main | ( | int | argc, |
char * | argv[] | ||
) |
[Register MoFEM discrete manager in PETSc]
[Register MoFEM discrete manager in PETSc
[Create MoAB]
< mesh database
< mesh database interface
[Create MoAB]
[Create MoFEM]
< finite element database
< finite element database interface
[Create MoFEM]
Definition at line 2406 of file free_surface.cpp.
|
constexpr |
Definition at line 81 of file free_surface.cpp.
double a0 = 980 |
Definition at line 160 of file free_surface.cpp.
|
constexpr |
Definition at line 77 of file free_surface.cpp.
auto bit = [](auto b) { return BitRefLevel().set(b); } |
Definition at line 312 of file free_surface.cpp.
auto bubble_device |
Definition at line 284 of file free_surface.cpp.
auto capillary_tube |
Definition at line 278 of file free_surface.cpp.
int coord_type = EXECUTABLE_COORD_TYPE |
Definition at line 75 of file free_surface.cpp.
Definition at line 203 of file free_surface.cpp.
auto cylindrical |
Definition at line 187 of file free_surface.cpp.
auto d_cut_off |
Definition at line 204 of file free_surface.cpp.
auto d_phase_function_h |
Definition at line 215 of file free_surface.cpp.
|
constexpr |
Definition at line 144 of file free_surface.cpp.
double eps = 1e-12 |
Definition at line 175 of file free_surface.cpp.
Definition at line 170 of file free_surface.cpp.
Definition at line 171 of file free_surface.cpp.
auto get_current_bit |
dofs bit used to do calculations
Definition at line 149 of file free_surface.cpp.
auto get_D |
auto get_dofs_ents_all |
get entities of dofs in the problem - used for debugging
Definition at line 368 of file free_surface.cpp.
auto get_dofs_ents_by_field_name |
get entities of dofs in the problem - used for debugging
Definition at line 340 of file free_surface.cpp.
Definition at line 221 of file free_surface.cpp.
Definition at line 222 of file free_surface.cpp.
auto get_fe_bit |
Definition at line 314 of file free_surface.cpp.
auto get_global_size |
Definition at line 318 of file free_surface.cpp.
Definition at line 249 of file free_surface.cpp.
Definition at line 224 of file free_surface.cpp.
auto get_M0_dh = [](auto h) { return 0; } |
Definition at line 225 of file free_surface.cpp.
auto get_M2 |
Definition at line 227 of file free_surface.cpp.
Definition at line 231 of file free_surface.cpp.
auto get_M3 |
Definition at line 233 of file free_surface.cpp.
auto get_M3_dh |
Definition at line 250 of file free_surface.cpp.
auto get_projection_bit = []() { return 2 * get_start_bit() + 4; } |
Definition at line 154 of file free_surface.cpp.
auto get_skin_child_bit = []() { return 2 * get_start_bit() + 3; } |
Definition at line 153 of file free_surface.cpp.
auto get_skin_parent_bit = []() { return 2 * get_start_bit() + 2; } |
Definition at line 152 of file free_surface.cpp.
auto get_skin_projection_bit = []() { return 2 * get_start_bit() + 5; } |
Definition at line 155 of file free_surface.cpp.
auto get_start_bit |
Definition at line 146 of file free_surface.cpp.
double h = 0.01 / 8 |
Definition at line 169 of file free_surface.cpp.
|
static |
Definition at line 17 of file free_surface.cpp.
|
constexpr |
Definition at line 82 of file free_surface.cpp.
FTensor::Index<'i', SPACE_DIM> i |
Definition at line 132 of file free_surface.cpp.
auto init_h |
Initialisation function.
Definition at line 295 of file free_surface.cpp.
auto integration_rule = [](int, int, int) { return 2 * order + 1; } |
Definition at line 185 of file free_surface.cpp.
FTensor::Index<'j', SPACE_DIM> j |
Definition at line 133 of file free_surface.cpp.
FTensor::Index<'k', SPACE_DIM> k |
Definition at line 134 of file free_surface.cpp.
Definition at line 183 of file free_surface.cpp.
auto kernel_eye |
auto kernel_oscillation |
Definition at line 260 of file free_surface.cpp.
FTensor::Index<'l', SPACE_DIM> l |
Definition at line 135 of file free_surface.cpp.
double lambda = 73 |
auto marker = [](auto b) { return BitRefLevel().set(BITREFLEVEL_SIZE - b); } |
Definition at line 313 of file free_surface.cpp.
double md = 1e-2 |
Definition at line 174 of file free_surface.cpp.
Definition at line 180 of file free_surface.cpp.
Definition at line 181 of file free_surface.cpp.
double mu_m = 0.010101 * 1e2 |
Definition at line 162 of file free_surface.cpp.
double mu_p = 0.000182 * 1e2 |
Definition at line 164 of file free_surface.cpp.
auto my_max = [](const double x) { return (x - 1 + std::abs(x + 1)) / 2; } |
Definition at line 201 of file free_surface.cpp.
auto my_min = [](const double x) { return (x + 1 - std::abs(x - 1)) / 2; } |
Definition at line 202 of file free_surface.cpp.
int nb_levels = 4 |
Definition at line 141 of file free_surface.cpp.
int order = 3 |
auto phase_function |
Definition at line 211 of file free_surface.cpp.
int refine_overlap = 4 |
Definition at line 142 of file free_surface.cpp.
Definition at line 178 of file free_surface.cpp.
Definition at line 179 of file free_surface.cpp.
double rho_m = 0.998 |
Definition at line 161 of file free_surface.cpp.
double rho_p = 0.0012 |
Definition at line 163 of file free_surface.cpp.
auto save_range |
Definition at line 324 of file free_surface.cpp.
|
constexpr |
Definition at line 78 of file free_surface.cpp.
|
constexpr |
Definition at line 137 of file free_surface.cpp.
double tol = std::numeric_limits<float>::epsilon() |
Definition at line 176 of file free_surface.cpp.
|
static |
Definition at line 467 of file free_surface.cpp.
|
constexpr |
Definition at line 79 of file free_surface.cpp.
double W = 0.25 |
Definition at line 166 of file free_surface.cpp.
auto wetting_angle = [](double water_level) { return water_level; } |
Definition at line 310 of file free_surface.cpp.
auto wetting_angle_sub_stepping |
Definition at line 194 of file free_surface.cpp.