COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Solver.hpp
Go to the documentation of this file.
1 // Copyright (C) 2010-2011 von Karman Institute for Fluid Dynamics, Belgium
2 //
3 // This software is distributed under the terms of the
4 // GNU Lesser General Public License version 3 (LGPLv3).
5 // See doc/lgpl.txt and doc/gpl.txt for the license text.
6 
7 #ifndef cf3_UFEM_Solver_hpp
8 #define cf3_UFEM_Solver_hpp
9 
11 #include "common/OptionURI.hpp"
12 
13 #include "mesh/Dictionary.hpp"
14 
15 #include "solver/SimpleSolver.hpp"
16 
20 
21 
22 #include "LibUFEM.hpp"
23 
24 namespace cf3 {
25 namespace solver { namespace actions { class Probe; } }
26 namespace UFEM {
27 
28 class InitialConditions;
29 
32 {
33 public: // functions
34 
37  Solver ( const std::string& name );
38 
39  virtual ~Solver();
40 
42  static std::string type_name () { return "Solver"; }
43 
47  Handle<common::Action> add_direct_solver(const std::string& builder_name);
48 
52  Handle<common::Action> add_unsteady_solver(const std::string& builder_name);
53 
58  Handle<common::Action> add_unsteady_advance_solver(const std::string& builder_name);
59 
63  Handle<common::Action> add_iteration_solver(const std::string& builder_name);
64 
66  Handle<common::Action> add_restart_writer();
67 
69  Handle<InitialConditions> create_initial_conditions();
70 
72  void create_fields();
73 
74  Handle<solver::actions::Probe> add_probe( const std::string& name, Component& parent, const Handle<mesh::Dictionary>& dict = Handle<mesh::Dictionary>() );
75 
76  void signature_add_solver(common::SignalArgs& args);
77  void signal_add_direct_solver(common::SignalArgs& args);
78  void signal_add_unsteady_solver(common::SignalArgs& args);
79  void signal_add_unsteady_advance_solver(common::SignalArgs& args);
80  void signal_add_iteration_solver(common::SignalArgs& args);
81  void signal_add_restart_writer(common::SignalArgs& args);
82  void signal_create_initial_conditions(common::SignalArgs& args);
83  void signal_create_fields(common::SignalArgs& args);
84  void signature_add_probe(common::SignalArgs& args);
85  void signal_add_probe(common::SignalArgs& args);
86 
87  virtual void mesh_loaded(mesh::Mesh& mesh);
88  virtual void mesh_changed(mesh::Mesh& mesh);
89 
90  virtual void execute();
91 
92 private:
94  void on_variables_added_event(common::SignalArgs& args);
96  Handle<common::Action> add_solver(const std::string& builder_name, Component& parent);
97 
100 };
101 
102 } // UFEM
103 } // cf3
104 
105 
106 #endif // cf3_UFEM_Solver_hpp
std::string name(ComponentWrapper &self)
Safe pointer to an object. This is the supported method for referring to components.
Definition: Handle.hpp:39
static std::string type_name()
Get the class name.
Definition: Solver.hpp:42
Handle< InitialConditions > m_initial_conditions
Definition: Solver.hpp:98
Manages a set of maps.
Definition: SignalFrame.hpp:31
bool m_need_field_creation
Definition: Solver.hpp:99
Top-level namespace for coolfluid.
Definition: Action.cpp:18
#define UFEM_API
Definition: LibUFEMDemo.hpp:23
Base class for defining CF components.
Definition: Component.hpp:82
Send comments to:
COOLFluiD Web Admin