22 #ifndef _aspect_boundary_velocity_gplates_h 23 #define _aspect_boundary_velocity_gplates_h 29 #include <deal.II/base/function_lib.h> 34 namespace BoundaryVelocity
54 const Tensor<1,2> &surface_point_two);
60 screen_output(
const Tensor<1,2> &surface_point_one,
61 const Tensor<1,2> &surface_point_two)
const;
67 void load_file(
const std::string &filename,
77 Tensor<1,dim> surface_velocity(
const Point<dim> &position)
const;
83 std::array<std::unique_ptr<Functions::InterpolatedUniformGridData<2>>, 2>
velocities;
106 angles_from_matrix (
const Tensor<2,3> &rotation_matrix)
const;
113 rotation_axis_from_matrix (Tensor<1,3> &rotation_axis,
114 const Tensor<2,3> &rotation_matrix)
const;
121 template <
int in,
int out>
122 Tensor<1,out> convert_tensor (
const Tensor<1,in> &old_tensor)
const;
130 cartesian_surface_coordinates(
const Tensor<1,3> &sposition)
const;
137 cartesian_velocity_at_surface_point(
const std::array<double,3> &spherical_point)
const;
148 Tensor<1,3> sphere_to_cart_velocity(
const Tensor<1,2> &s_velocities,
149 const std::array<double,3> &s_position)
const;
157 gplates_1_4_or_higher(
const boost::property_tree::ptree &pt)
const;
182 boundary_velocity (
const types::boundary_id boundary_indicator,
183 const Point<dim> &position)
const override;
212 parse_parameters (ParameterHandler &prm)
override;
309 std::unique_ptr<internal::GPlatesLookup<dim>>
lookup;
324 update_data (
const bool load_both_files);
331 end_time_dependence ();
337 create_filename (
const int timestep)
const;
double data_file_time_step
double first_data_file_model_time
double lithosphere_thickness
int first_data_file_number
std::array< std::unique_ptr< Functions::InterpolatedUniformGridData< 2 > >, 2 > velocities
void declare_parameters(ParameterHandler &prm)
double velocity_scaling_factor
std::string data_directory
std::unique_ptr< internal::GPlatesLookup< dim > > old_lookup
Tensor< 2, 3 > rotation_matrix
std::unique_ptr< internal::GPlatesLookup< dim > > lookup
std::string velocity_file_name
bool decreasing_file_order