WaveBEM: Unsteady Nonlinear Potential Flow Solver for Ship-Wave Interaction.
NumericalTowingTank Class Reference

#include <numerical_towing_tank.h>

Inheritance diagram for NumericalTowingTank:
ComputationalDomain< 3 >

Public Member Functions

 NumericalTowingTank (unsigned int, unsigned int)
 
void full_mesh_treatment ()
 
void compute_curvatures (Vector< double > &curvatures)
 
void apply_curvatures (const Vector< double > &curvatures, const std::vector< bool > boundary_dofs)
 
void partial_mesh_treatment (const double blend_factor)
 
void update_mapping (const Vector< double > &map_points)
 
 ~NumericalTowingTank ()
 
virtual void read_domain ()
 
virtual void refine_and_resize ()
 
virtual void generate_double_nodes_set ()
 
virtual void declare_parameters (ParameterHandler &prm)
 
virtual void parse_parameters (ParameterHandler &prm)
 
void create_initial_mesh (const Point< 3 > PointFrontTop, const Point< 3 > PointFrontBot, const Point< 3 > PointMidTop, const Point< 3 > PointMidBot, const Point< 3 > PointBackTop, const Point< 3 > PointBackBot, const Point< 3 > PointLeftTransom, const Point< 3 > PointRightTransom, const Point< 3 > PointCenterTransom, Triangulation< 2, 3 > &triangulation)
 
void refine_global_on_boat (const unsigned int num_refinements)
 
void compute_nodes_flags ()
 
void set_up_smoother ()
 
void initialize_smoother ()
 
void update_smoother ()
 
void perform_line_smoothing (unsigned int num_smoothings)
 
void perform_surface_projection ()
 
void perform_water_line_nodes_projection ()
 
void perform_smoothing (bool full_treatment, const double blend_factor)
 
void compute_normals_at_nodes (Vector< double > &map_points_used)
 
void compute_constraints (ConstraintMatrix &cc)
 
void make_edges_conformal (bool isotropic_ref_on_opposite_side)
 
void remove_mesh_anisotropy (Triangulation< 2, 3 > &tria)
 
void remove_transom_hanging_nodes ()
 
unsigned int find_point_id (const Point< 3 > &p, const std::vector< Point< 3 > > &ps)
 
void extract_boundary_dofs (std::vector< bool > &dofs, unsigned int id, DoFHandler< 2, 3 > &vector_dh)
 
- Public Member Functions inherited from ComputationalDomain< 3 >
 ComputationalDomain (const unsigned int fe_degree=1, const unsigned int mapping_degree=1)
 
virtual ~ComputationalDomain ()
 
bool mesh_check_and_update ()
 
void compute_min_diameter ()
 
void generate_double_nodes_set ()
 
void generate_octree_blocking ()
 
void boat_mesh_smoothing ()
 
void inflow_mesh_smoothing ()
 
void dump_tria (std::string fname) const
 
void restore_tria (std::string fname)
 
void compute_normals ()
 
void update_support_points ()
 

Public Attributes

unsigned int n_cycles
 
std::string iges_file_name
 
BoatModel boat_model
 
SurfaceSmoothingrestart_surface_smoother
 
SurfaceSmoothingsurface_smoother
 
std::vector< OpenCascade::LineSmoothing * > line_smoothers
 
std::vector< std::vector< bool > > boundary_dofs
 
std::vector< unsigned int > boundary_ids
 
std::vector< Point< 3 > > base_points
 
std::vector< Point< 3 > > moving_points
 
std::vector< unsigned int > base_point_ids
 
std::vector< unsigned int > moving_point_ids
 
std::vector< Handle(Geom_Curve)> curves
 
std::vector< bool > on_curve_option
 
std::vector< TopLoc_Location * > smoothers_locations
 
std::vector< GeometryFlagsflags
 
std::vector< GeometryFlagsvector_flags
 
std::vector< Point< 3 > > iges_normals
 
std::vector< Point< 3 > > old_iges_normals
 
std::vector< double > iges_mean_curvatures
 
SparsityPattern normals_sparsity_pattern
 
ConstraintMatrix vector_constraints
 
SparseMatrix< double > vector_normals_matrix
 
Vector< double > vector_normals_rhs
 
Vector< double > vector_normals_solution
 
std::vector< Point< 3 > > node_normals
 
std::set< tria_itedge_cells
 
std::set< tria_itboat_edge_cells
 
std::set< tria_itwater_edge_cells
 
std::map< tria_it, tria_itboat_to_water_edge_cells
 
std::map< tria_it, tria_itwater_to_boat_edge_cells
 
Vector< double > smoothing_curvature_vector
 
Vector< double > smoothing_map_points
 
Vector< double > initial_map_points
 
Vector< double > old_map_points
 
Vector< double > rigid_motion_map_points
 
double Lx_domain
 
double Ly_domain
 
double Lz_domain
 
double Lx_boat
 
const unsigned int mapping_degree
 
Vector< double > edges_tangents
 
Vector< double > edges_length_ratios
 
double boat_displacement
 
double assigned_sink
 
double assigned_trim
 
double Ixx
 
double Ixy
 
double Ixz
 
double Iyy
 
double Iyz
 
double Izz
 
double max_aspect_ratio
 
double front_mesh_inclination_coeff
 
double back_mesh_inclination_coeff
 
double back_keel_length
 
double front_keel_length
 
double middle_keel_length
 
unsigned int number_of_transom_edges
 
unsigned int init_global_boat_refs
 
unsigned int init_adaptive_boat_refs
 
double init_adaptive_boat_refs_fraction
 
bool no_boat
 
- Public Attributes inherited from ComputationalDomain< 3 >
const unsigned int mapping_degree
 
Triangulation< dim-1, dim > coarse_tria
 
PersistentTriangulation< dim-1, dim > tria
 
FE_Q< dim-1, dim > fe
 
DoFHandler< dim-1, dim > dh
 
FESystem< dim-1, dim > vector_fe
 
DoFHandler< dim-1, dim > vector_dh
 
std::vector< std::set< unsigned int > > double_nodes_set
 
std::vector< std::set< unsigned int > > vector_double_nodes_set
 
Vector< double > map_points
 
Mapping< dim-1, dim > * mapping
 
Vector< double > surface_nodes
 
Vector< double > other_nodes
 
unsigned int n_cycles
 
std_cxx1x::shared_ptr< Quadrature< dim-1 > > quadrature
 
unsigned int singular_quadrature_order
 
unsigned int free_sur_ID1
 
unsigned int free_sur_ID2
 
unsigned int free_sur_ID3
 
unsigned int wall_sur_ID1
 
unsigned int wall_sur_ID2
 
unsigned int wall_sur_ID3
 
unsigned int inflow_sur_ID1
 
unsigned int inflow_sur_ID2
 
unsigned int inflow_sur_ID3
 
unsigned int pressure_sur_ID
 
unsigned int free_sur_edge_on_boat_ID
 
unsigned int num_octree_levels
 
std::map< unsigned int, std::vector< cell_it > > dof_to_elems
 
std::map< unsigned int, std::vector< cell_it > > vector_dof_to_elems
 
std::vector< unsigned int > vector_dof_components
 
std::map< unsigned int, std::vector< unsigned int > > dof_to_block
 
std::map< cell_it, std::vector< std::vector< unsigned int > > > quad_point_to_block
 
std::map< cell_it, std::set< cell_it > > elem_to_surr_elems
 
std::vector< OctreeBlock< dim > * > blocks
 
unsigned int num_blocks
 
std::vector< unsigned int > endLevel
 
std::vector< unsigned int > startLevel
 
std::vector< unsigned int > childlessList
 
std::vector< unsigned int > numParent
 
std::vector< std::vector< unsigned int > > parentList
 
std::map< cell_it, std::vector< Point< dim > > > quadPoints
 
std::map< cell_it, std::vector< Point< dim > > > quadNormals
 
std::map< cell_it, std::vector< std::vector< double > > > quadShapeFunValues
 
std::map< cell_it, std::vector< double > > quadJxW
 
std::vector< std::vector< unsigned int > > dofs_filled_blocks
 
std::vector< std::vector< unsigned int > > quad_points_filled_blocks
 
std::set< unsigned int > free_surf_and_boat_nodes
 
std::set< unsigned int > boat_nodes
 
std::map< unsigned int, std::map< cell_it, unsigned int > > integralCheck
 
double min_diameter
 
std::vector< Point< dim > > vector_support_points
 
std::vector< Point< dim > > support_points
 
std::vector< GeometryFlagsflags
 
std::vector< GeometryFlagsvector_flags
 
std::vector< GeometryFlagscell_flags
 
std::vector< Point< 3 > > ref_points
 
std::vector< Point< dim > > nodes_normals
 

Additional Inherited Members

- Public Types inherited from ComputationalDomain< 3 >
typedef DoFHandler< dim-1, dim >::active_cell_iterator cell_it
 
typedef Triangulation< dim-1, dim >::active_cell_iterator tria_it
 

Detailed Description

Definition at line 98 of file numerical_towing_tank.h.

Constructor & Destructor Documentation

NumericalTowingTank::NumericalTowingTank ( unsigned int  fe_degree,
unsigned int  mapping_degree 
)

Definition at line 29 of file numerical_towing_tank.cc.

NumericalTowingTank::~NumericalTowingTank ( )

Definition at line 436 of file numerical_towing_tank.cc.

Member Function Documentation

void NumericalTowingTank::apply_curvatures ( const Vector< double > &  curvatures,
const std::vector< bool >  boundary_dofs 
)

Definition at line 81 of file numerical_towing_tank.cc.

void NumericalTowingTank::compute_constraints ( ConstraintMatrix cc)

Definition at line 3436 of file numerical_towing_tank.cc.

void NumericalTowingTank::compute_curvatures ( Vector< double > &  curvatures)

Definition at line 111 of file numerical_towing_tank.cc.

void NumericalTowingTank::compute_nodes_flags ( )

Definition at line 1866 of file numerical_towing_tank.cc.

void NumericalTowingTank::compute_normals_at_nodes ( Vector< double > &  map_points_used)

Definition at line 3358 of file numerical_towing_tank.cc.

void NumericalTowingTank::create_initial_mesh ( const Point< 3 >  PointFrontTop,
const Point< 3 >  PointFrontBot,
const Point< 3 >  PointMidTop,
const Point< 3 >  PointMidBot,
const Point< 3 >  PointBackTop,
const Point< 3 >  PointBackBot,
const Point< 3 >  PointLeftTransom,
const Point< 3 >  PointRightTransom,
const Point< 3 >  PointCenterTransom,
Triangulation< 2, 3 > &  triangulation 
)

Definition at line 582 of file numerical_towing_tank.cc.

void NumericalTowingTank::declare_parameters ( ParameterHandler prm)
virtual

Reimplemented from ComputationalDomain< 3 >.

Definition at line 482 of file numerical_towing_tank.cc.

void NumericalTowingTank::extract_boundary_dofs ( std::vector< bool > &  dofs,
unsigned int  id,
DoFHandler< 2, 3 > &  vector_dh 
)

Definition at line 4005 of file numerical_towing_tank.cc.

unsigned int NumericalTowingTank::find_point_id ( const Point< 3 > &  p,
const std::vector< Point< 3 > > &  ps 
)

Definition at line 4015 of file numerical_towing_tank.cc.

void NumericalTowingTank::full_mesh_treatment ( )

Definition at line 38 of file numerical_towing_tank.cc.

void NumericalTowingTank::generate_double_nodes_set ( )
virtual

Definition at line 1792 of file numerical_towing_tank.cc.

void NumericalTowingTank::initialize_smoother ( )

Definition at line 2310 of file numerical_towing_tank.cc.

void NumericalTowingTank::make_edges_conformal ( bool  isotropic_ref_on_opposite_side)

Definition at line 3526 of file numerical_towing_tank.cc.

void NumericalTowingTank::parse_parameters ( ParameterHandler prm)
virtual

Reimplemented from ComputationalDomain< 3 >.

Definition at line 531 of file numerical_towing_tank.cc.

void NumericalTowingTank::partial_mesh_treatment ( const double  blend_factor)

Definition at line 67 of file numerical_towing_tank.cc.

void NumericalTowingTank::perform_line_smoothing ( unsigned int  num_smoothings)

Definition at line 2572 of file numerical_towing_tank.cc.

void NumericalTowingTank::perform_smoothing ( bool  full_treatment,
const double  blend_factor 
)

Definition at line 3300 of file numerical_towing_tank.cc.

void NumericalTowingTank::perform_surface_projection ( )

Definition at line 2642 of file numerical_towing_tank.cc.

void NumericalTowingTank::perform_water_line_nodes_projection ( )

Definition at line 2722 of file numerical_towing_tank.cc.

void NumericalTowingTank::read_domain ( )
virtual

Reimplemented from ComputationalDomain< 3 >.

Definition at line 290 of file numerical_towing_tank.cc.

void NumericalTowingTank::refine_and_resize ( )
virtual

Reimplemented from ComputationalDomain< 3 >.

Definition at line 124 of file numerical_towing_tank.cc.

void NumericalTowingTank::refine_global_on_boat ( const unsigned int  num_refinements)

Definition at line 3854 of file numerical_towing_tank.cc.

void NumericalTowingTank::remove_mesh_anisotropy ( Triangulation< 2, 3 > &  tria)

Definition at line 3610 of file numerical_towing_tank.cc.

void NumericalTowingTank::remove_transom_hanging_nodes ( )

Definition at line 3453 of file numerical_towing_tank.cc.

void NumericalTowingTank::set_up_smoother ( )

Definition at line 2274 of file numerical_towing_tank.cc.

void NumericalTowingTank::update_mapping ( const Vector< double > &  map_points)

Definition at line 105 of file numerical_towing_tank.cc.

void NumericalTowingTank::update_smoother ( )

Definition at line 2453 of file numerical_towing_tank.cc.

Member Data Documentation

double NumericalTowingTank::assigned_sink

Definition at line 326 of file numerical_towing_tank.h.

double NumericalTowingTank::assigned_trim

Definition at line 330 of file numerical_towing_tank.h.

double NumericalTowingTank::back_keel_length

Definition at line 351 of file numerical_towing_tank.h.

double NumericalTowingTank::back_mesh_inclination_coeff

Definition at line 347 of file numerical_towing_tank.h.

std::vector<unsigned int> NumericalTowingTank::base_point_ids

Definition at line 247 of file numerical_towing_tank.h.

std::vector<Point<3> > NumericalTowingTank::base_points

Definition at line 243 of file numerical_towing_tank.h.

double NumericalTowingTank::boat_displacement

Definition at line 323 of file numerical_towing_tank.h.

std::set<tria_it> NumericalTowingTank::boat_edge_cells

Definition at line 288 of file numerical_towing_tank.h.

BoatModel NumericalTowingTank::boat_model

Definition at line 219 of file numerical_towing_tank.h.

std::map<tria_it, tria_it> NumericalTowingTank::boat_to_water_edge_cells

Definition at line 292 of file numerical_towing_tank.h.

std::vector< std::vector<bool> > NumericalTowingTank::boundary_dofs

Definition at line 238 of file numerical_towing_tank.h.

std::vector<unsigned int> NumericalTowingTank::boundary_ids

Definition at line 241 of file numerical_towing_tank.h.

std::vector<Handle(Geom_Curve)> NumericalTowingTank::curves

Definition at line 251 of file numerical_towing_tank.h.

std::set<tria_it> NumericalTowingTank::edge_cells

Definition at line 286 of file numerical_towing_tank.h.

Vector<double > NumericalTowingTank::edges_length_ratios

Definition at line 321 of file numerical_towing_tank.h.

Vector<double > NumericalTowingTank::edges_tangents

Definition at line 319 of file numerical_towing_tank.h.

std::vector<GeometryFlags> NumericalTowingTank::flags

Definition at line 260 of file numerical_towing_tank.h.

double NumericalTowingTank::front_keel_length

Definition at line 355 of file numerical_towing_tank.h.

double NumericalTowingTank::front_mesh_inclination_coeff

Definition at line 344 of file numerical_towing_tank.h.

std::string NumericalTowingTank::iges_file_name

Definition at line 215 of file numerical_towing_tank.h.

std::vector<double> NumericalTowingTank::iges_mean_curvatures

Definition at line 272 of file numerical_towing_tank.h.

std::vector< Point<3> > NumericalTowingTank::iges_normals

Definition at line 265 of file numerical_towing_tank.h.

unsigned int NumericalTowingTank::init_adaptive_boat_refs

Definition at line 366 of file numerical_towing_tank.h.

double NumericalTowingTank::init_adaptive_boat_refs_fraction

Definition at line 369 of file numerical_towing_tank.h.

unsigned int NumericalTowingTank::init_global_boat_refs

Definition at line 363 of file numerical_towing_tank.h.

Vector<double> NumericalTowingTank::initial_map_points

Definition at line 301 of file numerical_towing_tank.h.

double NumericalTowingTank::Ixx

Definition at line 333 of file numerical_towing_tank.h.

double NumericalTowingTank::Ixy

Definition at line 334 of file numerical_towing_tank.h.

double NumericalTowingTank::Ixz

Definition at line 335 of file numerical_towing_tank.h.

double NumericalTowingTank::Iyy

Definition at line 336 of file numerical_towing_tank.h.

double NumericalTowingTank::Iyz

Definition at line 337 of file numerical_towing_tank.h.

double NumericalTowingTank::Izz

Definition at line 338 of file numerical_towing_tank.h.

std::vector<OpenCascade::LineSmoothing *> NumericalTowingTank::line_smoothers

Definition at line 233 of file numerical_towing_tank.h.

double NumericalTowingTank::Lx_boat

Definition at line 314 of file numerical_towing_tank.h.

double NumericalTowingTank::Lx_domain

Definition at line 308 of file numerical_towing_tank.h.

double NumericalTowingTank::Ly_domain

Definition at line 310 of file numerical_towing_tank.h.

double NumericalTowingTank::Lz_domain

Definition at line 312 of file numerical_towing_tank.h.

const unsigned int NumericalTowingTank::mapping_degree

Definition at line 316 of file numerical_towing_tank.h.

double NumericalTowingTank::max_aspect_ratio

Definition at line 341 of file numerical_towing_tank.h.

double NumericalTowingTank::middle_keel_length

Definition at line 359 of file numerical_towing_tank.h.

std::vector<unsigned int> NumericalTowingTank::moving_point_ids

Definition at line 249 of file numerical_towing_tank.h.

std::vector<Point<3> > NumericalTowingTank::moving_points

Definition at line 245 of file numerical_towing_tank.h.

unsigned int NumericalTowingTank::n_cycles

Definition at line 213 of file numerical_towing_tank.h.

bool NumericalTowingTank::no_boat

Definition at line 372 of file numerical_towing_tank.h.

std::vector<Point<3> > NumericalTowingTank::node_normals

Definition at line 284 of file numerical_towing_tank.h.

SparsityPattern NumericalTowingTank::normals_sparsity_pattern

Definition at line 274 of file numerical_towing_tank.h.

unsigned int NumericalTowingTank::number_of_transom_edges

Definition at line 361 of file numerical_towing_tank.h.

std::vector< Point<3> > NumericalTowingTank::old_iges_normals

Definition at line 269 of file numerical_towing_tank.h.

Vector<double> NumericalTowingTank::old_map_points

Definition at line 303 of file numerical_towing_tank.h.

std::vector<bool> NumericalTowingTank::on_curve_option

Definition at line 255 of file numerical_towing_tank.h.

SurfaceSmoothing* NumericalTowingTank::restart_surface_smoother

Definition at line 221 of file numerical_towing_tank.h.

Vector<double> NumericalTowingTank::rigid_motion_map_points

Definition at line 306 of file numerical_towing_tank.h.

std::vector< TopLoc_Location *> NumericalTowingTank::smoothers_locations

Definition at line 258 of file numerical_towing_tank.h.

Vector<double> NumericalTowingTank::smoothing_curvature_vector

Definition at line 296 of file numerical_towing_tank.h.

Vector<double> NumericalTowingTank::smoothing_map_points

Definition at line 299 of file numerical_towing_tank.h.

SurfaceSmoothing* NumericalTowingTank::surface_smoother

Definition at line 223 of file numerical_towing_tank.h.

ConstraintMatrix NumericalTowingTank::vector_constraints

Definition at line 276 of file numerical_towing_tank.h.

std::vector<GeometryFlags> NumericalTowingTank::vector_flags

Definition at line 262 of file numerical_towing_tank.h.

SparseMatrix<double> NumericalTowingTank::vector_normals_matrix

Definition at line 278 of file numerical_towing_tank.h.

Vector<double> NumericalTowingTank::vector_normals_rhs

Definition at line 280 of file numerical_towing_tank.h.

Vector<double> NumericalTowingTank::vector_normals_solution

Definition at line 282 of file numerical_towing_tank.h.

std::set<tria_it> NumericalTowingTank::water_edge_cells

Definition at line 290 of file numerical_towing_tank.h.

std::map<tria_it, tria_it> NumericalTowingTank::water_to_boat_edge_cells

Definition at line 294 of file numerical_towing_tank.h.


The documentation for this class was generated from the following files: