KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
generation_model.h
Go to the documentation of this file.
1 // Kratos Multi-Physics - ThermalDEM Application
2 //
3 // License: BSD License
4 // Kratos default license: kratos/license.txt
5 //
6 // Main authors: Rafael Rangel (rrangel@cimne.upc.edu)
7 //
8 
9 #if !defined(GENERATION_MODEL_H_INCLUDED)
10 #define GENERATION_MODEL_H_INCLUDED
11 
12 // System includes
13 
14 // External includes
15 
16 // Project includes
19 
20 namespace Kratos
21 {
22  class KRATOS_API(THERMAL_DEM_APPLICATION) GenerationModel : public HeatGenerationMechanism
23  {
24  public:
25 
26  // Pointer definition
28 
29  // Constructor / Destructor
31  virtual ~GenerationModel();
32 
33  // Public methods
34  void SetHeatGenerationMechanismInProperties (Properties::Pointer pProp, bool verbose = true) const override;
35  double ComputeHeatGeneration (const ProcessInfo& r_process_info, ThermalSphericParticle* particle) override;
36 
37  // Clone
38  HeatGenerationMechanism* CloneRaw() const override {
39  HeatGenerationMechanism* cloned_model(new GenerationModel(*this));
40  return cloned_model;
41  }
42 
43  HeatGenerationMechanism::Pointer CloneShared() const override {
44  HeatGenerationMechanism::Pointer cloned_model(new GenerationModel(*this));
45  return cloned_model;
46  }
47 
48  // Turn back information as a string
49  virtual std::string Info() const override {
50  std::stringstream buffer;
51  buffer << "GenerationModel";
52  return buffer.str();
53  }
54 
55  // Print object information
56  virtual void PrintInfo(std::ostream& rOStream) const override { rOStream << "GenerationModel"; }
57  virtual void PrintData(std::ostream& rOStream) const override {}
58 
59  private:
60 
61  // Assignment operator / Copy constructor
62  GenerationModel& operator=(GenerationModel const& rOther) {return *this;}
63  GenerationModel(GenerationModel const& rOther) {*this = rOther;}
64 
65  }; // Class GenerationModel
66 
67  // input stream function
68  inline std::istream& operator>>(std::istream& rIStream,
69  GenerationModel& rThis) {
70  return rIStream;
71  }
72 
73  // output stream function
74  inline std::ostream& operator<<(std::ostream& rOStream,
75  const GenerationModel& rThis) {
76  rThis.PrintInfo(rOStream);
77  rOStream << std::endl;
78  rThis.PrintData(rOStream);
79  return rOStream;
80  }
81 
82 } // namespace Kratos
83 
84 #endif // GENERATION_MODEL_H_INCLUDED
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: generation_model.h:23
HeatGenerationMechanism * CloneRaw() const override
Definition: generation_model.h:38
virtual void PrintData(std::ostream &rOStream) const override
Definition: generation_model.h:57
HeatGenerationMechanism::Pointer CloneShared() const override
Definition: generation_model.h:43
virtual std::string Info() const override
Definition: generation_model.h:49
KRATOS_CLASS_POINTER_DEFINITION(GenerationModel)
virtual void PrintInfo(std::ostream &rOStream) const override
Definition: generation_model.h:56
Definition: heat_generation_mechanism.h:28
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Definition: thermal_spheric_particle.h:30
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432