Skip to content

Commit 5d34b60

Browse files
authored
code refactors incl. phasing out of &ptr access in favour of ptr.f_arg() (#183)
1 parent 5a7895f commit 5d34b60

File tree

7 files changed

+373
-135
lines changed

7 files changed

+373
-135
lines changed

src/aero_data.hpp

Lines changed: 83 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,78 +40,128 @@ struct AeroData {
4040
static int spec_by_name(const AeroData &self, const std::string &name) {
4141
int value;
4242
const int name_size = name.size();
43-
f_aero_data_spec_by_name(self.ptr.f_arg(), &value, name.c_str(), &name_size);
44-
if (value==0) throw std::runtime_error("Element not found.");
45-
return value-1;
43+
f_aero_data_spec_by_name(
44+
self.ptr.f_arg(),
45+
&value,
46+
name.c_str(),
47+
&name_size
48+
);
49+
if (value==0)
50+
throw std::runtime_error("Element not found.");
51+
return value - 1;
4652
}
4753

4854
static std::size_t __len__(const AeroData &self) {
4955
int len;
50-
f_aero_data_len(&self.ptr, &len);
56+
f_aero_data_len(
57+
self.ptr.f_arg(),
58+
&len
59+
);
5160
return len;
5261
}
5362

5463
static void set_frac_dim(AeroData &self, const double value) {
55-
f_aero_data_set_frac_dim(&self.ptr, &value);
64+
f_aero_data_set_frac_dim(
65+
self.ptr.f_arg_non_const(),
66+
&value
67+
);
5668
}
5769

5870
static double get_frac_dim(const AeroData &self) {
5971
double value;
60-
f_aero_data_get_frac_dim(&self.ptr, &value);
72+
f_aero_data_get_frac_dim(
73+
self.ptr.f_arg(),
74+
&value
75+
);
6176
return value;
6277
}
6378

6479
static void set_vol_fill_factor(AeroData &self, const double value) {
65-
f_aero_data_set_vol_fill_factor(&self.ptr, &value);
80+
f_aero_data_set_vol_fill_factor(
81+
self.ptr.f_arg_non_const(),
82+
&value
83+
);
6684
}
6785

6886
static double get_prime_radius(AeroData &self) {
6987
double value;
70-
f_aero_data_get_prime_radius(&self.ptr, &value);
88+
f_aero_data_get_prime_radius(
89+
self.ptr.f_arg(),
90+
&value
91+
);
7192
return value;
7293
}
7394

7495
static void set_prime_radius(AeroData &self, const double value) {
75-
f_aero_data_set_prime_radius(&self.ptr, &value);
96+
f_aero_data_set_prime_radius(
97+
self.ptr.f_arg_non_const(),
98+
&value
99+
);
76100
}
77101

78102
static double get_vol_fill_factor(const AeroData &self) {
79103
double value;
80-
f_aero_data_get_vol_fill_factor(&self.ptr, &value);
104+
f_aero_data_get_vol_fill_factor(
105+
self.ptr.f_arg(),
106+
&value
107+
);
81108
return value;
82109
}
83110

84111
static double rad2vol(const AeroData &self, const double radius) {
85112
double vol;
86-
f_aero_data_rad2vol(&self.ptr, &radius, &vol);
113+
f_aero_data_rad2vol(
114+
self.ptr.f_arg(),
115+
&radius,
116+
&vol
117+
);
87118
return vol;
88119
}
89120

90121
static double vol2rad(const AeroData &self, const double vol) {
91122
double radius;
92-
f_aero_data_vol2rad(&self.ptr, &vol, &radius);
123+
f_aero_data_vol2rad(
124+
self.ptr.f_arg(),
125+
&vol,
126+
&radius
127+
);
93128
return radius;
94129
}
95130

96131
static double diam2vol(const AeroData &self, const double diam) {
97132
double vol;
98-
f_aero_data_diam2vol(&self.ptr, &diam, &vol);
133+
f_aero_data_diam2vol(
134+
self.ptr.f_arg(),
135+
&diam,
136+
&vol
137+
);
99138
return vol;
100139
}
101140

102141
static double vol2diam(const AeroData &self, const double vol) {
103142
double diam;
104-
f_aero_data_vol2diam(&self.ptr, &vol, &diam);
143+
f_aero_data_vol2diam(
144+
self.ptr.f_arg(),
145+
&vol,
146+
&diam
147+
);
105148
return diam;
106149
}
107150

108151
static std::valarray<double> densities(const AeroData &self) {
109152
int len;
110-
f_aero_data_len(&self.ptr, &len);
153+
f_aero_data_len(
154+
self.ptr.f_arg(),
155+
&len
156+
);
111157
std::valarray<double> data(len);
112158

113159
for (int idx = 0; idx < len; idx++) {
114-
f_aero_data_get_species_density(&self.ptr, &idx, &data[idx]);
160+
f_aero_data_get_species_density(
161+
self.ptr.f_arg(),
162+
&idx,
163+
&data[idx]
164+
);
115165
}
116166
return data;
117167
}
@@ -120,10 +170,24 @@ struct AeroData {
120170
int idx;
121171
double data;
122172
const int name_size = name.size();
123-
f_aero_data_spec_by_name(&self.ptr, &idx, name.c_str(), &name_size);
124-
if (idx==0) throw std::runtime_error("Element not found.");
173+
174+
f_aero_data_spec_by_name(
175+
self.ptr.f_arg(),
176+
&idx,
177+
name.c_str(),
178+
&name_size
179+
);
180+
181+
if (idx==0)
182+
throw std::runtime_error("Element not found.");
183+
125184
idx--;
126-
f_aero_data_get_species_density(&self.ptr, &idx, &data);
185+
f_aero_data_get_species_density(
186+
self.ptr.f_arg(),
187+
&idx,
188+
&data
189+
);
190+
127191
return data;
128192
}
129193

src/aero_particle.hpp

Lines changed: 61 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,74 +49,123 @@ struct AeroParticle {
4949
{
5050
int len = AeroData::__len__(*self.aero_data);
5151
std::valarray<double> data(len);
52-
f_aero_particle_volumes(&self.ptr, begin(data), &len);
52+
f_aero_particle_volumes(
53+
self.ptr.f_arg(),
54+
begin(data),
55+
&len
56+
);
5357
return data;
5458
}
5559

5660
static double volume(const AeroParticle &self) {
5761
double vol;
58-
f_aero_particle_volume(&self.ptr, &vol);
62+
f_aero_particle_volume(
63+
self.ptr.f_arg(),
64+
&vol
65+
);
5966
return vol;
6067
}
6168

6269
static double species_volume(const AeroParticle &self, const int &i_spec) {
6370
double vol;
64-
f_aero_particle_species_volume(&self.ptr, &i_spec, &vol);
71+
f_aero_particle_species_volume(
72+
self.ptr.f_arg(),
73+
&i_spec,
74+
&vol
75+
);
6576
return vol;
6677
}
6778

6879
static double dry_volume(const AeroParticle &self) {
6980
double vol;
70-
f_aero_particle_dry_volume(&self.ptr, self.aero_data.get(), &vol);
81+
f_aero_particle_dry_volume(
82+
self.ptr.f_arg(),
83+
self.aero_data.get(),
84+
&vol
85+
);
7186
return vol;
7287
}
7388

7489
static double radius(const AeroParticle &self) {
7590
double radius;
76-
f_aero_particle_radius(&self.ptr, self.aero_data.get(), &radius);
91+
f_aero_particle_radius(
92+
self.ptr.f_arg(),
93+
self.aero_data.get(),
94+
&radius
95+
);
7796
return radius;
7897
}
7998

8099
static double dry_radius(const AeroParticle &self) {
81100
double radius;
82-
f_aero_particle_dry_radius(&self.ptr, self.aero_data.get(), &radius);
101+
f_aero_particle_dry_radius(
102+
self.ptr.f_arg(),
103+
self.aero_data.get(),
104+
&radius
105+
);
83106
return radius;
84107
}
85108

86109
static double diameter(const AeroParticle &self) {
87110
double diameter;
88-
f_aero_particle_diameter(&self.ptr, self.aero_data.get(), &diameter);
111+
f_aero_particle_diameter(
112+
self.ptr.f_arg(),
113+
self.aero_data.get(),
114+
&diameter
115+
);
89116
return diameter;
90117
}
91118

92119
static double dry_diameter(const AeroParticle &self) {
93120
double diameter;
94-
f_aero_particle_dry_diameter(&self.ptr, self.aero_data.get(), &diameter);
121+
f_aero_particle_dry_diameter(
122+
self.ptr.f_arg(),
123+
self.aero_data.get(),
124+
&diameter
125+
);
95126
return diameter;
96127
}
97128

98129
static double mass(const AeroParticle &self) {
99130
double mass;
100-
f_aero_particle_mass(&self.ptr, self.aero_data.get(), &mass);
131+
f_aero_particle_mass(
132+
self.ptr.f_arg(),
133+
self.aero_data.get(),
134+
&mass
135+
);
101136
return mass;
102137
}
103138

104139
static double species_mass(const AeroParticle &self, const int &i_spec) {
105140
double mass;
106-
f_aero_particle_species_mass(&self.ptr, &i_spec, self.aero_data.get(), &mass);
141+
f_aero_particle_species_mass(
142+
self.ptr.f_arg(),
143+
&i_spec,
144+
self.aero_data.get(),
145+
&mass
146+
);
107147
return mass;
108148
}
109149

110150
static std::valarray<double> species_masses(const AeroParticle &self) {
111151
int len = AeroData::__len__(*self.aero_data);
112152
std::valarray<double> masses(len);
113-
f_aero_particle_species_masses(&self.ptr, self.aero_data.get(), &len, begin(masses));
153+
f_aero_particle_species_masses(
154+
self.ptr.f_arg(),
155+
self.aero_data.get(),
156+
&len,
157+
begin(masses)
158+
);
114159
return masses;
115160
}
116161

117162
static double solute_kappa(const AeroParticle &self) {
118163
double kappa;
119-
f_aero_particle_solute_kappa(&self.ptr, self.aero_data.get(), &kappa);
164+
f_aero_particle_solute_kappa(
165+
self.ptr.f_arg(),
166+
self.aero_data.get(),
167+
&kappa
168+
);
120169
return kappa;
121170
}
122171

0 commit comments

Comments
 (0)