ASPECT
free_surface.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2011 - 2018 by the authors of the ASPECT code.
3 
4  This file is part of ASPECT.
5 
6  ASPECT is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2, or (at your option)
9  any later version.
10 
11  ASPECT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with ASPECT; see the file LICENSE. If not see
18  <http://www.gnu.org/licenses/>.
19 */
20 
21 
22 #ifndef _aspect_free_surface_h
23 #define _aspect_free_surface_h
24 
25 #include <aspect/simulator.h>
27 
28 namespace aspect
29 {
30  using namespace dealii;
31 
32  namespace Assemblers
33  {
40  template <int dim>
42  public SimulatorAccess<dim>
43  {
44  public:
45  virtual ~ApplyStabilization () {};
46 
47  virtual
48  void
51  };
52  }
53 
54  template<int dim>
56  {
57  public:
65 
70 
78  void execute();
79 
84  void set_assemblers();
85 
90  void setup_dofs();
91 
95  static
97 
101  void parse_parameters (ParameterHandler &prm);
102 
103 
109  double get_stabilization_term () const;
110 
111  private:
122  void make_constraints ();
123 
128  void project_velocity_onto_boundary (LinearAlgebra::Vector &output);
129 
133  void compute_mesh_displacements ();
134 
138  void interpolate_mesh_velocity ();
139 
145 
151 
156 
157 
164 
170 
178 
188 
193 
198 
204 
209  ConstraintMatrix mesh_vertex_constraints;
210 
215  {
216  enum Direction { normal, vertical };
217  };
218 
224 
225 
235  std::set<types::boundary_id> tangential_mesh_boundary_indicators;
236 
237  friend class Simulator<dim>;
238  friend class SimulatorAccess<dim>;
239  };
240 }
241 
242 
243 #endif
std::set< types::boundary_id > tangential_mesh_boundary_indicators
Definition: free_surface.h:235
ConstraintMatrix mesh_displacement_constraints
Definition: free_surface.h:203
const FESystem< dim > free_surface_fe
Definition: free_surface.h:150
LinearAlgebra::Vector mesh_displacements
Definition: free_surface.h:177
void declare_parameters(ParameterHandler &prm)
DoFHandler< dim > free_surface_dof_handler
Definition: free_surface.h:155
Definition: compat.h:38
ConstraintMatrix mesh_vertex_constraints
Definition: free_surface.h:209
SurfaceAdvection::Direction advection_direction
Definition: free_surface.h:223
Simulator< dim > & sim
Definition: free_surface.h:144
LinearAlgebra::Vector fs_mesh_velocity
Definition: free_surface.h:187
LinearAlgebra::BlockVector mesh_velocity
Definition: free_surface.h:169