Flow123d  DF_patch_fe_mechanics-ccea6e4
patch_point_values.cc
Go to the documentation of this file.
1 /*!
2  *
3  * Copyright (C) 2015 Technical University of Liberec. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License version 3 as published by the
7  * Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12  *
13  *
14  * @file patch_point_values.cc
15  * @brief Store finite element data on the actual patch
16  * such as shape function values, gradients, Jacobian
17  * of the mapping from the reference cell etc.
18  * @author David Flanderka
19  */
20 
22 
23 
24 template<unsigned int spacedim>
26  operations_.resize(ref_ops.size(), nullptr);
27  for (uint i_op = 0; i_op < ref_ops.size(); ++i_op ) {
28  auto *op = ref_ops[i_op];
29  if (op == nullptr) continue;
30 
31  auto *new_op = make_fe_op(i_op, {op->shape()[0], op->shape()[1]}, &common_reinit::op_base, op->n_dofs(), op->size_type());
32  new_op->allocate_const_result(patch_fe_data_.zero_vec_);
33  }
34 }
35 
36 
37 template class PatchPointValues<3>;
38 template class PatchOp<3>;
39 template class FeBulk::PatchPointValues<3>;
40 template class FeSide::PatchPointValues<3>;
Bulk Side specialization, order of item in operations_ vector corresponds to the SideOps enum.
Class represents element or FE operations.
PatchOp< spacedim > * make_fe_op(uint op_idx, std::initializer_list< uint > shape, ReinitFunction reinit_f, uint n_dofs, OpSizeType size_type=pointOp)
PatchFeData & patch_fe_data_
Reference to PatchFeData structure shared with PatchFeValues.
std::vector< PatchOp< spacedim > * > operations_
Vector of all defined operations.
void create_zero_operations(std::vector< PatchOp< spacedim > * > &ref_ops)
unsigned int uint
Store finite element data on the actual patch such as shape function values, gradients,...
ArenaVec< double > zero_vec_
ArenaVec of zero values of maximal length using in zero PatchPointValues construction.
static void op_base(FMT_UNUSED PatchOp< 3 > *result_op, FMT_UNUSED IntTableArena &el_table)