18 #ifndef ASSEMBLY_OUTPUT_HH_
19 #define ASSEMBLY_OUTPUT_HH_
21 #include <unordered_map>
39 template <
unsigned int dim,
class TEqData>
73 stream_->update_time(f_acc->time());
96 template <
unsigned int dim,
class TEqData>
103 static constexpr
const char *
name() {
return "Output_ElemData_Assembly"; }
115 unsigned int element_patch_idx, field_value_cache_position, val_idx;
122 this->
offsets_[field_value_cache_position] = val_idx;
125 f_acc->fill_data_value(this->
offsets_);
132 template <
template<
IntDim...>
class DimAssembly>
140 template <
unsigned int dim,
class TEqData>
147 static constexpr
const char *
name() {
return "Output_NodeData_Assembly"; }
153 for(
unsigned int i = 0; i<RefElement<dim>::n_nodes; i++)
173 unsigned int element_patch_idx, field_value_cache_position, val_idx;
177 val_idx = (*offset_vec_)[ this->
stream_->get_output_mesh_ptr()->get_loc_elem_idx(this->
integral_data_.
bulk_[0][i].cell.elm_idx()) ];
181 this->
offsets_[field_value_cache_position+j] = val_idx+j;
185 f_acc->fill_data_value(this->
offsets_);
194 template <
template<
IntDim...>
class DimAssembly>
IntegralData integral_data_
Holds patch data for computing different types of integrals.
Quadrature * quad_
Quadrature used in assembling methods.
AssemblyInternals * asm_internals_
Holds shared internals data with GeneriAssembly.
std::shared_ptr< BulkIntegralAcc< dim > > create_bulk_integral(Quadrature *quad)
AssemblyOutputBase(unsigned int quad_order, EqData *eq_data, AssemblyInternals *asm_internals)
Constructor.
EqFields * eq_fields_
Data objects shared with EquationOutput.
std::shared_ptr< OutputTime > stream_
Output stream.
AssemblyOutputBase(EqData *eq_data, AssemblyInternals *asm_internals)
Constructor.
FieldSet used_fields_
Sub field set contains fields performed to output.
void end() override
Implements AssemblyBase::end.
void set_output_data(const FieldSet &used, std::shared_ptr< OutputTime > stream)
Sets output data members.
std::vector< int > offsets_
Holds indices (offsets) of cached data to output data vector.
void initialize()
Initialize auxiliary vectors and other data members.
void assemble_cell_integrals()
Assembles the cell integrals for the given dimension.
AssemblyOutputElemData(EqData *eq_data, AssemblyInternals *asm_internals)
Constructor.
~AssemblyOutputElemData()
Destructor.
std::shared_ptr< BulkIntegralAcc< dim > > bulk_integral_
static constexpr const char * name()
~AssemblyOutputNodeData()
Destructor.
static constexpr const char * name()
std::shared_ptr< std::vector< unsigned int > > offset_vec_
Holds offsets of individual local elements.
std::shared_ptr< BulkIntegralAcc< dim > > bulk_integral_
void set_output_data(const FieldSet &used, std::shared_ptr< OutputTime > stream)
Sets output data members.
void assemble_cell_integrals()
Assembles the cell integrals for the given dimension.
AssemblyOutputNodeData(EqData *eq_data, AssemblyInternals *asm_internals)
Constructor.
static unsigned int get()
Return number of stored elements.
int element_eval_point(unsigned int i_elem_in_cache, unsigned int i_eval_point) const
unsigned int position_in_cache(unsigned mesh_elm_idx, bool bdr=false) const
Return position of element stored in ElementCacheMap.
Container for various descendants of FieldCommonBase.
Range< FieldListAccessor > fields_range() const
Returns range of Fields held in field_list.
Generic class of assemblation.
Base class for quadrature rules on simplices in arbitrary dimensions.
Armor::Array< double >::ArrayMatSet set(uint i)
double weight(unsigned int i) const
Returns the ith weight.
static LocalPoint node_coords(unsigned int nid)
Definitions of basic Lagrangean finite elements with polynomial shape functions.
Class FEValues calculates finite element data on the actual cells such as shape function values,...
unsigned int IntDim
A dimension index type.
Definitions of particular quadrature rules on simplices.
Class RefElement defines numbering of vertices, sides, calculation of normal vectors etc.
Holds common data shared between GenericAssemblz and Assembly<dim> classes.
ElementCacheMap element_cache_map_
ElementCacheMap according to EvalPoints.
RevertableListVector< BulkIntegralData > bulk_
Holds data for computing bulk integrals.