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
52 const Tensor<1,2> &surface_point_two);
59 const Tensor<1,2> &surface_point_two)
const;
65 void load_file(
const std::string &filename,
81 std::array<std::unique_ptr<Functions::InterpolatedUniformGridData<2>>, 2>
velocities;
112 const Tensor<2,3> &rotation_matrix)
const;
119 template <
int in,
int out>
120 Tensor<1,out>
convert_tensor (
const Tensor<1,in> &old_tensor)
const;
147 const std::array<double,3> &s_position)
const;
180 boundary_velocity (
const types::boundary_id boundary_indicator,
181 const Point<dim> &position)
const override;
210 parse_parameters (ParameterHandler &prm)
override;
307 std::unique_ptr<internal::GPlatesLookup<dim>>
lookup;
322 update_data (
const bool load_both_files);
329 end_time_dependence ();
335 create_filename (
const int timestep)
const;
Tensor< 1, out > convert_tensor(const Tensor< 1, in > &old_tensor) const
double data_file_time_step
double first_data_file_model_time
bool gplates_1_4_or_higher(const boost::property_tree::ptree &pt) const
double lithosphere_thickness
std::array< double, 3 > angles_from_matrix(const Tensor< 2, 3 > &rotation_matrix) const
int first_data_file_number
Tensor< 1, dim > cartesian_velocity_at_surface_point(const std::array< double, 3 > &spherical_point) const
Tensor< 1, dim > surface_velocity(const Point< dim > &position) const
void load_file(const std::string &filename, const MPI_Comm comm)
std::array< std::unique_ptr< Functions::InterpolatedUniformGridData< 2 > >, 2 > velocities
Tensor< 1, 3 > sphere_to_cart_velocity(const Tensor< 1, 2 > &s_velocities, const std::array< double, 3 > &s_position) const
GPlatesLookup(const Tensor< 1, 2 > &surface_point_one, const Tensor< 1, 2 > &surface_point_two)
void declare_parameters(ParameterHandler &prm)
double velocity_scaling_factor
std::string data_directory
Tensor< 1, 3 > cartesian_surface_coordinates(const Tensor< 1, 3 > &sposition) const
std::unique_ptr< internal::GPlatesLookup< dim > > old_lookup
Tensor< 2, 3 > rotation_matrix
std::string screen_output(const Tensor< 1, 2 > &surface_point_one, const Tensor< 1, 2 > &surface_point_two) const
std::unique_ptr< internal::GPlatesLookup< dim > > lookup
std::string velocity_file_name
double rotation_axis_from_matrix(Tensor< 1, 3 > &rotation_axis, const Tensor< 2, 3 > &rotation_matrix) const
bool decreasing_file_order