Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clang formatting #18

Closed
wants to merge 11 commits into from
17 changes: 17 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
BasedOnStyle: LLVM
Language: Cpp
SortIncludes: true
PointerAlignment: Left
ColumnLimit: 0
IndentWidth: 2
UseTab: Never
BreakBeforeBraces: GNU
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: true
NamespaceIndentation: All
BreakBeforeBinaryOperators: All
AlignAfterOpenBracket: true
BinPackParameters: false
BinPackArguments: false
AlignOperands: true
32 changes: 32 additions & 0 deletions .github/workflows/clang-format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Clang Format

on:
push:
branches:
- master
- "feature/**"

jobs:
clang_format:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get install -y clang-format

- name: Check code formatting
run: |
${{ github.workspace }}/scripts/clang-format/format.sh \
--clang_format_file ${{ github.workspace }}/.clang-format \
--directories ${{ github.workspace }}/src ${{ github.workspace }}/include ${{ github.workspace }}/tests
clang_format_diff=$(git diff)
if [[ -n "$clang_format_diff" ]]; then
echo "Found formatting errors:"
echo "$clang_format_diff"
exit 1
fi
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,5 @@ doc/**/*.nav
doc/**/*.snm
doc/**/*.text.backup

# vscode
.vscode
133 changes: 57 additions & 76 deletions include/applications/reactors/base.hpp
Original file line number Diff line number Diff line change
@@ -1,71 +1,65 @@
#ifndef APP_REACTORS_BASE_HPP
#define APP_REACTORS_BASE_HPP

#include <vector>
#include <limits>
#include <numeric>
#include <algorithm>
#include <limits>
#include <memory>
#include <numeric>
#include <vector>

#include "chemistry.hpp"
#include "sundials/cvode/interface.hpp"
#include "results/observer.hpp"
#include "embedded_python/functions.hpp"
#include "results/observer.hpp"
#include "sundials/cvode/interface.hpp"

namespace Apps
{

namespace Apps {

namespace Reactor {
namespace Reactor
{

enum class Type {
Const_Pres
, Const_Vol
, Const_Temp_Pres
, Const_Temp_Vol
enum class Type
{
Const_Pres,
Const_Vol,
Const_Temp_Pres,
Const_Temp_Vol
};

// ------------------
// --- class Base ---
// ------------------

class Base : public SUNDIALS::CVODE::Client
, public Results::Subject {

public:

class Base : public SUNDIALS::CVODE::Client, public Results::Subject
{

public:
Base();

Base( Cantera::ThermoPhase& thermo
, Cantera::Kinetics& kinetics
, double const temperature
, double const pressure
, std::vector<double> const& mass_fractions
, double const relative_solver_tolerance
, double const absolute_solver_tolerance
, double const total_simulation_time
, bool const write_results );

Base(Cantera::ThermoPhase& thermo, Cantera::Kinetics& kinetics, double const temperature, double const pressure, std::vector<double> const& mass_fractions, double const relative_solver_tolerance, double const absolute_solver_tolerance, double const total_simulation_time, bool const write_results);

virtual ~Base() = default;

Base( Base const& ) = delete;
Base& operator=( Base const& ) = delete;
Base(Base const&) = delete;

Base& operator=(Base const&) = delete;

double Temperature() const;

double Pressure() const;

double Density() const;

std::vector<double> const& MassFractions() const;

int RightHandSide( realtype const /*time*/
, realtype* const state
, realtype* rhs ) override;

void StoreResults( double const time );
int RightHandSide(realtype const /*time*/
,
realtype* const state,
realtype* rhs) override;

protected:
void StoreResults(double const time);

protected:
Cantera::ThermoPhase& m_thermo;
Cantera::Kinetics& m_kinetics;
size_t m_nspecs;
Expand All @@ -74,16 +68,14 @@ namespace Apps {
double m_pressure; // unit = [Pa] = [kg/m/s^2]
std::vector<double> m_mass_fractions; // unit = [-]
std::vector<double> m_net_production_rates; // unit = [kmol/m^3/s]


void SetInitialState();

virtual void SetThermoState( realtype const * const state ) = 0;

void SpeciesDerivative( realtype* const derivative );
virtual void SetThermoState(realtype const* const state) = 0;

private:
void SpeciesDerivative(realtype* const derivative);

private:
std::vector<double> m_molecular_weights; // unit = [kg/kmol]
double m_time;
double m_relative_solver_tolerance;
Expand All @@ -92,62 +84,51 @@ namespace Apps {
bool m_write_results;

void CompleteInstantiation();

void SetSolverParameters();

void RegisterBasicResults();

virtual void UpdateSolution();

};

// ------------------------------------------------------------------------
// --- class EnergyEnabled
// ------------------------------------------------------------------------

class EnergyEnabled: public Base {

class EnergyEnabled : public Base
{
public:

EnergyEnabled( Cantera::ThermoPhase& thermo
, Cantera::Kinetics& kinetics
, double const temperature
, double const pressure
, std::vector<double> const& mass_fractions
, double const relative_solver_tolerance
, double const absolute_solver_tolerance
, double const total_simulation_time
, bool const write_results );

EnergyEnabled(Cantera::ThermoPhase& thermo, Cantera::Kinetics& kinetics, double const temperature, double const pressure, std::vector<double> const& mass_fractions, double const relative_solver_tolerance, double const absolute_solver_tolerance, double const total_simulation_time, bool const write_results);

virtual ~EnergyEnabled() = default;

EnergyEnabled( EnergyEnabled const& ) = delete;
EnergyEnabled& operator=( EnergyEnabled const& ) = delete;
EnergyEnabled(EnergyEnabled const&) = delete;

EnergyEnabled& operator=(EnergyEnabled const&) = delete;

void UpdateSolution() override;

int RightHandSide( realtype const /*time*/
, realtype* const state
, realtype* rhs ) override;


int RightHandSide(realtype const /*time*/
,
realtype* const state,
realtype* rhs) override;

protected:

std::vector<double> m_energy; // enthalpy or internal energy [J/kmol]

void SetInitialState();
virtual void SetThermoState( realtype const * const state ) = 0;

virtual void SetThermoState(realtype const* const state) = 0;

virtual double EnergyDerivative() = 0;

private:

void RegisterAdditionalResults();
};


} // namespace Reactor

} // namespace Apps

#endif // APP_REACTORS_BASE_HPP
83 changes: 23 additions & 60 deletions include/applications/reactors/factory.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,69 +6,32 @@
#include "applications/reactors/base.hpp"
#include "applications/reactors/reactors.hpp"

namespace Apps {

namespace Reactor {
namespace Apps
{

inline std::unique_ptr<Base> Create( Type const reactor_type
, Cantera::ThermoPhase& thermo
, Cantera::Kinetics& kinetics
, double const temperature
, double const pressure
, std::vector<double> const& mass_fractions
, double const relative_solver_tolerance
, double const absolute_solver_tolerance
, double const total_simulation_time
, bool const write_results ) {
switch( reactor_type ) {
case Type::Const_Pres :
return std::make_unique<ConstPres>( thermo
, kinetics
, temperature
, pressure
, mass_fractions
, relative_solver_tolerance
, absolute_solver_tolerance
, total_simulation_time
, write_results);
case Type::Const_Vol :
return std::make_unique<ConstVol>( thermo
, kinetics
, temperature
, pressure
, mass_fractions
, relative_solver_tolerance
, absolute_solver_tolerance
, total_simulation_time
, write_results );
case Type::Const_Temp_Pres :
return std::make_unique<ConstTempPres>( thermo
, kinetics
, temperature
, pressure
, mass_fractions
, relative_solver_tolerance
, absolute_solver_tolerance
, total_simulation_time
, write_results );
case Type::Const_Temp_Vol :
return std::make_unique<ConstTempVol>( thermo
, kinetics
, temperature
, pressure
, mass_fractions
, relative_solver_tolerance
, absolute_solver_tolerance
, total_simulation_time
, write_results );
default :
throw( "Invalid reactor" );
return nullptr;
}
namespace Reactor
{

inline std::unique_ptr<Base> Create(Type const reactor_type, Cantera::ThermoPhase& thermo, Cantera::Kinetics& kinetics, double const temperature, double const pressure, std::vector<double> const& mass_fractions, double const relative_solver_tolerance, double const absolute_solver_tolerance, double const total_simulation_time, bool const write_results)
{
switch (reactor_type)
{
case Type::Const_Pres:
return std::make_unique<ConstPres>(thermo, kinetics, temperature, pressure, mass_fractions, relative_solver_tolerance, absolute_solver_tolerance, total_simulation_time, write_results);
case Type::Const_Vol:
return std::make_unique<ConstVol>(thermo, kinetics, temperature, pressure, mass_fractions, relative_solver_tolerance, absolute_solver_tolerance, total_simulation_time, write_results);
case Type::Const_Temp_Pres:
return std::make_unique<ConstTempPres>(thermo, kinetics, temperature, pressure, mass_fractions, relative_solver_tolerance, absolute_solver_tolerance, total_simulation_time, write_results);
case Type::Const_Temp_Vol:
return std::make_unique<ConstTempVol>(thermo, kinetics, temperature, pressure, mass_fractions, relative_solver_tolerance, absolute_solver_tolerance, total_simulation_time, write_results);
default:
throw("Invalid reactor");
return nullptr;
}
}

} // namespace Reactor

} // namespace Apps

#endif // APP_REACTORS_FACTORY_HPP
Loading