/home/runner/work/kynema/kynema/kynema/src/interfaces/turbine/turbine_interface_builder.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/interfaces/turbine/turbine_interface_builder.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
turbine_interface_builder.hpp
Go to the documentation of this file.
1#pragma once
2
9
10namespace kynema::interfaces {
11
24public:
27 [[nodiscard]] components::SolutionBuilder& Solution() { return this->solution_builder; }
28
31 [[nodiscard]] components::TurbineBuilder& Turbine() { return this->turbine_builder; }
32
35 [[nodiscard]] components::AerodynamicsBuilder& Aerodynamics() { return this->aero_builder; }
36
39 [[nodiscard]] components::ControllerBuilder& Controller() { return this->controller_builder; }
40
43 [[nodiscard]] components::OutputsBuilder& Outputs() { return this->outputs_builder; }
44
50 [[nodiscard]] TurbineInterface Build() {
51 return TurbineInterface(
52 this->solution_builder.Input(), this->turbine_builder.Input(),
53 this->aero_builder.Input(), this->controller_builder.Input(),
54 this->outputs_builder.Config()
55 );
56 }
57
58private:
59 components::SolutionBuilder solution_builder;
60 components::TurbineBuilder turbine_builder;
62 components::ControllerBuilder controller_builder;
63 components::OutputsBuilder outputs_builder;
64};
65
66} // namespace kynema::interfaces
Builder class to construct a TurbineInterface by composing Turbine and Solution components.
Definition turbine_interface_builder.hpp:23
components::TurbineBuilder & Turbine()
Get the builder for the turbine component.
Definition turbine_interface_builder.hpp:31
components::SolutionBuilder & Solution()
Gets the builder for the solution component.
Definition turbine_interface_builder.hpp:27
components::AerodynamicsBuilder & Aerodynamics()
Get the builder for the aerodynamics component.
Definition turbine_interface_builder.hpp:35
TurbineInterface Build()
Builds the TurbineInterface by composing the blade, tower, nacelle, hub, and solution components.
Definition turbine_interface_builder.hpp:50
components::ControllerBuilder & Controller()
Get the builder for the controller component.
Definition turbine_interface_builder.hpp:39
components::OutputsBuilder & Outputs()
Gets the builder for the outputs component.
Definition turbine_interface_builder.hpp:43
Interface for blade simulation that manages state, solver, and components.
Definition turbine_interface.hpp:29
Definition aerodynamics_builder.hpp:10
Definition controller_builder.hpp:10
Builder class for creating Turbine objects with a fluent interface pattern.
Definition turbine_builder.hpp:14
Definition blade_interface.cpp:9
A builder class for building a outputs configuration.
Definition outputs_builder.hpp:10
A factory class for building a solution input, which is used by interfaces to control the time steppi...
Definition solution_builder.hpp:14
const SolutionInput & Input() const
Creates a SolutionInput object based on the previously set parameters.
Definition solution_builder.cpp:52