Rheolef  7.1
an efficient C++ finite element environment
geo.cc File Reference

Go to the source code of this file.

Namespaces

 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 More...
 
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); \
}

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()));\
}

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); \
}

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 (); \
}

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.

rheolef::space_numbering::ndof
size_type ndof(const basis_basic< T > &b, const geo_size &gs, size_type map_dim)
Definition: space_numbering.cc:28
rheolef::compact
geo_basic< T, M > compact(const geo_basic< T, M > &gamma)
Definition: geo.cc:219
put
void put(idiststream &in, odiststream &out, bool do_proj, bool do_lumped_mass, bool def_fill_opt, size_type extract_id, const Float &scale_value, const std::pair< Float, Float > &u_range, render_type render)
Definition: branch.cc:500
rheolef::io::out
Definition: rheostream.h:167
rheolef::space_numbering::dis_ndof
size_type dis_ndof(const basis_basic< T > &b, const geo_size &gs, size_type map_dim)
Definition: space_numbering.cc:41
mkgeo_ball.order
order
Definition: mkgeo_ball.sh:343
rheolef::geo_load
geo_basic< T, M > geo_load(const std::string &filename)
sequential mesh with reference counting
Definition: geo.cc:177
rheolef::sides_guard
void sides_guard(const geo_basic< T, M > &omega)
Definition: geo.cc:639
rheolef::space_numbering::dis_nnod
size_type dis_nnod(const basis_basic< T > &b, const geo_size &gs, size_type map_dim)
Definition: space_numbering.cc:67
rheolef::boundary_guard
void boundary_guard(const geo_basic< T, M > &omega)
Definition: geo.cc:600
rheolef::internal_sides_guard
void internal_sides_guard(const geo_basic< T, M > &omega)
Definition: geo.cc:619
mkgeo_grid.sys_coord
sys_coord
Definition: mkgeo_grid.sh:171
rheolef::space_numbering::nnod
size_type nnod(const basis_basic< T > &b, const geo_size &gs, size_type map_dim)
Definition: space_numbering.cc:54
size_type
field::size_type size_type
Definition: branch.cc:425
mkgeo_ball.dim
dim
Definition: mkgeo_ball.sh:307
rheolef::space_constant::coordinate_type
coordinate_type
Definition: space_constant.h:121
mkgeo_contraction.name
name
Definition: mkgeo_contraction.sh:133
geo
see the geo page for the full documentation
M
Expr1::memory_type M
Definition: vec_expr_v2.h:385
T
Expr1::float_type T
Definition: field_expr.h:218