9 #ifndef STK_MESH_FIXTURES_GEARS_FIXTURE_HPP 10 #define STK_MESH_FIXTURES_GEARS_FIXTURE_HPP 14 #include <stk_util/parallel/Parallel.hpp> 16 #include <stk_mesh/base/Types.hpp> 17 #include <stk_mesh/base/MetaData.hpp> 18 #include <stk_mesh/base/BulkData.hpp> 19 #include <stk_mesh/base/Field.hpp> 20 #include <stk_mesh/base/DataTraits.hpp> 22 #include <stk_mesh/fem/FEMMetaData.hpp> 23 #include <stk_mesh/fem/CoordinateSystems.hpp> 24 #include <stk_mesh/fem/TopologyDimensions.hpp> 41 GearParams(
double input_element_size,
42 double input_radius_min,
43 double input_radius_max,
44 double input_height_min,
45 double input_height_max)
46 : element_size(input_element_size),
47 radius_min(input_radius_min),
48 radius_max(input_radius_max),
49 height_min(input_height_min),
50 height_max(input_height_max)
63 typedef Field< double , Cylindrical> CylindricalField ;
64 typedef Field< double , Cartesian> CartesianField ;
66 enum { SpatialDimension = 3 };
69 GearParams gear_params=GearParams());
74 const size_t NUM_GEARS;
76 fem::FEMMetaData meta_data;
79 const EntityRank element_rank;
81 Part & cylindrical_coord_part;
85 CartesianField & cartesian_coord_field ;
86 CartesianField & displacement_field ;
87 CartesianField & translation_field ;
88 CylindricalField & cylindrical_coord_field;
90 Gear & get_gear(
size_t i) {
94 const Gear & get_gear(
size_t i)
const{
98 void update_displacement_field();
100 void communicate_model_fields();
104 std::vector<Gear *> m_gears;
106 GearsFixture(
const GearsFixture & );
107 GearsFixture & operator = (
const GearsFixture & );
111 void distribute_gear_across_processors(Gear & gear, GearsFixture::CylindricalField & cylindrical_coord_field);
112 unsigned destination_processor(
const Gear & gear,
double rad,
double angle,
double height,
unsigned p_rank,
unsigned p_size);
118 #endif //STK_MESH_FIXTURES_GEARS_FIXTURE_HPP