Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
geo.cc File Reference

Go to the source code of this file.

Namespaces

namespace  rheolef
 This file is part of Rheolef.
 

Macros

#define _RHEOLEF_save(M)
 
#define _RHEOLEF_set_name(M)
 
#define _RHEOLEF_set_serial_number(M)
 
#define _RHEOLEF_reset_order(M)
 
#define _RHEOLEF_set_nodes(M)
 
#define _RHEOLEF_set_coordinate_system(M)
 
#define _RHEOLEF_set_dimension(M)
 
#define _RHEOLEF_build_by_subdividing(M)
 
#define _RHEOLEF_build_from_data(M)
 
#define _RHEOLEF_reset_order(M)
 
#define _RHEOLEF_instanciation(T, M)
 

Functions

template<class T , class M >
geo_basic< T, Mgeo_load (const std::string &name)
 sequential mesh with reference counting
 
template<class T , class M >
geo_basic< T, Mcompact (const geo_basic< T, M > &gamma)
 
 _RHEOLEF_save (sequential) _RHEOLEF_set_name(sequential) _RHEOLEF_set_serial_number(sequential) _RHEOLEF_reset_order(sequential) _RHEOLEF_set_nodes(sequential) _RHEOLEF_set_coordinate_system(sequential) _RHEOLEF_set_dimension(sequential) _RHEOLEF_build_by_subdividing(sequential) _RHEOLEF_build_from_data(sequential) _RHEOLEF_save(distributed) _RHEOLEF_set_name(distributed) _RHEOLEF_set_serial_number(distributed) _RHEOLEF_reset_order(distributed) _RHEOLEF_set_nodes(distributed) _RHEOLEF_set_coordinate_system(distributed) _RHEOLEF_set_dimension(distributed) _RHEOLEF_build_by_subdividing(distributed) _RHEOLEF_reset_order(sequential) _RHEOLEF_reset_order(distributed) template< class T
 
template<class T , class M >
void boundary_guard (const geo_basic< T, M > &omega)
 
template<class T , class M >
void internal_sides_guard (const geo_basic< T, M > &omega)
 
template<class T , class M >
void sides_guard (const geo_basic< T, M > &omega)
 
 _RHEOLEF_instanciation (Float, sequential) _RHEOLEF_instanciation(Float
 

Macro Definition Documentation

◆ _RHEOLEF_save

#define _RHEOLEF_save (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::save (std::string filename) const \
{ \
if (filename == "") filename = name(); \
odiststream out (filename, "geo"); \
put (out); \
}
void put(idiststream &in, odiststream &out, bool do_proj, bool do_lumped_mass, string use_proj_approx, bool def_fill_opt, size_type extract_id, const Float &scale_value, const std::pair< Float, Float > &u_range, render_type render, reuse_proj_form_type reuse)
Definition branch.cc:529
see the geo page for the full documentation

Definition at line 238 of file geo.cc.

◆ _RHEOLEF_set_name

#define _RHEOLEF_set_name (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::set_name (std::string new_name) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot set_name on geo_domains"); \
ptr->set_name(new_name); \
geo_base_rep<T,M>::loaded_map().insert (make_pair(name(), base::get_count()));\
}

Definition at line 247 of file geo.cc.

◆ _RHEOLEF_set_serial_number

#define _RHEOLEF_set_serial_number (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::set_serial_number (size_type i) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot set_serial_number on geo_domains"); \
ptr->set_serial_number(i); \
geo_base_rep<T,M>::loaded_map().insert (make_pair(name(), base::get_count()));\
}
field::size_type size_type
Definition branch.cc:430

Definition at line 257 of file geo.cc.

◆ _RHEOLEF_reset_order [1/2]

#define _RHEOLEF_reset_order (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::reset_order (size_type order) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot reset_order on geo_domains"); \
ptr->reset_order(order); \
}

Definition at line 267 of file geo.cc.

◆ _RHEOLEF_set_nodes

#define _RHEOLEF_set_nodes (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::set_nodes (const disarray<node_type,M>& x) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot set_nodes on geo_domains"); \
ptr->set_nodes(x); \
}

Definition at line 276 of file geo.cc.

◆ _RHEOLEF_set_coordinate_system

#define _RHEOLEF_set_coordinate_system (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::set_coordinate_system (coordinate_type sys_coord) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot set_coordinate_system on geo_domains"); \
ptr->set_coordinate_system(sys_coord); \
}

Definition at line 285 of file geo.cc.

◆ _RHEOLEF_set_dimension

#define _RHEOLEF_set_dimension (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::set_dimension (size_type dim) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot set_dimension on geo_domains"); \
ptr->set_dimension(dim); \
}

Definition at line 294 of file geo.cc.

◆ _RHEOLEF_build_by_subdividing

#define _RHEOLEF_build_by_subdividing (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::build_by_subdividing ( \
const geo_basic<T,M>& omega, \
size_type k) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot build_by_subdividing on geo_domains"); \
ptr->build_by_subdividing (omega, k); \
}

Definition at line 303 of file geo.cc.

◆ _RHEOLEF_build_from_data

#define _RHEOLEF_build_from_data (   M)
Value:
template <class T> \
void \
geo_basic<T,M>::build_from_data ( \
const geo_header& hdr, \
const disarray<node_type, M>& node, \
std::array<disarray<geo_element_auto<>,M>, reference_element::max_variant>& tmp_geo_element, \
bool do_upgrade) \
{ \
geo_rep<T,M>* ptr = dynamic_cast<geo_rep<T,M>*>(base::pointer()); \
check_macro (ptr != 0, "cannot build_from_data on geo_domains"); \
ptr->build_from_data (hdr, node, tmp_geo_element, do_upgrade); \
}
Expr1::memory_type M

Definition at line 314 of file geo.cc.

◆ _RHEOLEF_reset_order [2/2]

#define _RHEOLEF_reset_order (   M)
Value:
template <class T> \
void \
geo_rep<T,M>::reset_order (size_type new_order) \
{ \
if (new_order == base::_piola_basis.degree()) return; \
base::_piola_basis.reset_family_index (new_order); \
size_type dis_nnod = space_numbering::dis_ndof (base::_piola_basis, base::_gs, base::_gs._map_dimension); \
size_type nnod = space_numbering::ndof (base::_piola_basis, base::_gs, base::_gs._map_dimension); \
base::_gs.node_ownership = distributor (nnod, base::comm(), nnod); \
disarray<point_basic<T>, M> new_node (base::_gs.node_ownership); \
for (size_type iv = 0, nv = base::_gs.ownership_by_dimension[0].size(); iv < nv; iv++) { \
new_node [iv] = base::_node [iv]; \
} \
base::_node = new_node; \
build_external_entities (); \
}
Expr1::float_type T
Definition field_expr.h:230

Definition at line 267 of file geo.cc.

◆ _RHEOLEF_instanciation

#define _RHEOLEF_instanciation (   T,
  M 
)
Value:
template class geo_base_rep<T,M>; \
template class geo_rep<T,M>; \
template class geo_basic<T,M>; \
template geo_basic<T,M> geo_load (const std::string& name); \
template geo_basic<T,M> compact (const geo_basic<T,M>&); \
template void boundary_guard (const geo_basic<T,M>&); \
template void internal_sides_guard (const geo_basic<T,M>&); \
template void sides_guard (const geo_basic<T,M>&);

Definition at line 660 of file geo.cc.