@@ -118,6 +118,23 @@ function TotalLagrangianSPHSystem(initial_condition, smoothing_kernel, smoothing
118118 pk1_corrected = Array {ELTYPE, 3} (undef, NDIMS, NDIMS, n_particles)
119119 deformation_grad = Array {ELTYPE, 3} (undef, NDIMS, NDIMS, n_particles)
120120
121+ # initial_coordinates_ = copy(initial_condition.coordinates)
122+ # current_coordinates_ = copy(initial_condition.coordinates)
123+ # initial_coordinates = PermutedDimsArray(permutedims(initial_coordinates_, (2, 1)),
124+ # (2, 1))
125+ # current_coordinates = PermutedDimsArray(permutedims(current_coordinates_, (2, 1)),
126+ # (2, 1))
127+ # # mass = copy(initial_condition.mass)
128+ # # material_density = copy(initial_condition.density)
129+ # correction_matrix_ = Array{ELTYPE, 3}(undef, NDIMS, NDIMS, n_particles)
130+ # correction_matrix = PermutedDimsArray(permutedims(correction_matrix_, (3, 2, 1)),
131+ # (3, 2, 1))
132+ # pk1_corrected_ = Array{ELTYPE, 3}(undef, NDIMS, NDIMS, n_particles)
133+ # pk1_corrected = PermutedDimsArray(permutedims(pk1_corrected_, (3, 2, 1)), (3, 2, 1))
134+ # deformation_grad_ = Array{ELTYPE, 3}(undef, NDIMS, NDIMS, n_particles)
135+ # deformation_grad = PermutedDimsArray(permutedims(deformation_grad_, (3, 2, 1)),
136+ # (3, 2, 1))
137+
121138 n_integrated_particles = n_particles - n_clamped_particles
122139
123140 lame_lambda = @. young_modulus * poisson_ratio /
@@ -171,14 +188,14 @@ end
171188 return system. current_coordinates
172189end
173190
174- @inline function current_coords (system:: TotalLagrangianSPHSystem , particle)
191+ @propagate_inbounds function current_coords (system:: TotalLagrangianSPHSystem , particle)
175192 # For this system, the current coordinates are stored in the system directly,
176193 # so we don't need a `u` array. This function is only to be used in this file
177194 # when no `u` is available.
178195 current_coords (nothing , system, particle)
179196end
180197
181- @inline function current_velocity (v, system:: TotalLagrangianSPHSystem , particle)
198+ @propagate_inbounds function current_velocity (v, system:: TotalLagrangianSPHSystem , particle)
182199 if particle <= system. n_integrated_particles
183200 return extract_svector (v, system, particle)
184201 end
@@ -204,58 +221,58 @@ end
204221 error (" `current_velocity(v, system)` is not implemented for `TotalLagrangianSPHSystem`" )
205222end
206223
207- @inline function viscous_velocity (v, system:: TotalLagrangianSPHSystem , particle)
224+ @propagate_inbounds function viscous_velocity (v, system:: TotalLagrangianSPHSystem , particle)
208225 return extract_svector (system. boundary_model. cache. wall_velocity, system, particle)
209226end
210227
211- @inline function current_density (v, system:: TotalLagrangianSPHSystem )
228+ @propagate_inbounds function current_density (v, system:: TotalLagrangianSPHSystem )
212229 return current_density (v, system. boundary_model, system)
213230end
214231
215232# In fluid-structure interaction, use the "hydrodynamic pressure" of the structure particles
216233# corresponding to the chosen boundary model.
217- @inline function current_pressure (v, system:: TotalLagrangianSPHSystem )
234+ @propagate_inbounds function current_pressure (v, system:: TotalLagrangianSPHSystem )
218235 return current_pressure (v, system. boundary_model, system)
219236end
220237
221- @inline function hydrodynamic_mass (system:: TotalLagrangianSPHSystem , particle)
238+ @propagate_inbounds function hydrodynamic_mass (system:: TotalLagrangianSPHSystem , particle)
222239 return system. boundary_model. hydrodynamic_mass[particle]
223240end
224241
225- @inline function correction_matrix (system, particle)
242+ @propagate_inbounds function correction_matrix (system, particle)
226243 extract_smatrix (system. correction_matrix, system, particle)
227244end
228245
229- @inline function deformation_gradient (system, particle)
246+ @propagate_inbounds function deformation_gradient (system, particle)
230247 extract_smatrix (system. deformation_grad, system, particle)
231248end
232- @inline function pk1_corrected (system, particle)
249+ @propagate_inbounds function pk1_corrected (system, particle)
233250 extract_smatrix (system. pk1_corrected, system, particle)
234251end
235252
236- function young_modulus (system:: TotalLagrangianSPHSystem , particle)
253+ @propagate_inbounds function young_modulus (system:: TotalLagrangianSPHSystem , particle)
237254 return young_modulus (system, system. young_modulus, particle)
238255end
239256
240- function young_modulus (:: TotalLagrangianSPHSystem , young_modulus, particle)
257+ @inline function young_modulus (:: TotalLagrangianSPHSystem , young_modulus, particle)
241258 return young_modulus
242259end
243260
244- function young_modulus (:: TotalLagrangianSPHSystem ,
245- young_modulus:: AbstractVector , particle)
261+ @propagate_inbounds function young_modulus (:: TotalLagrangianSPHSystem ,
262+ young_modulus:: AbstractVector , particle)
246263 return young_modulus[particle]
247264end
248265
249- function poisson_ratio (system:: TotalLagrangianSPHSystem , particle)
266+ @propagate_inbounds function poisson_ratio (system:: TotalLagrangianSPHSystem , particle)
250267 return poisson_ratio (system, system. poisson_ratio, particle)
251268end
252269
253- function poisson_ratio (:: TotalLagrangianSPHSystem , poisson_ratio, particle)
270+ @inline function poisson_ratio (:: TotalLagrangianSPHSystem , poisson_ratio, particle)
254271 return poisson_ratio
255272end
256273
257- function poisson_ratio (:: TotalLagrangianSPHSystem ,
258- poisson_ratio:: AbstractVector , particle)
274+ @inline function poisson_ratio (:: TotalLagrangianSPHSystem ,
275+ poisson_ratio:: AbstractVector , particle)
259276 return poisson_ratio[particle]
260277end
261278
325342 pk1_particle_corrected = pk1_particle * correction_matrix (system, particle)
326343
327344 @inbounds for j in 1 : ndims (system), i in 1 : ndims (system)
328- system. pk1_corrected[i, j, particle] = pk1_particle_corrected[i, j]
345+ system. pk1_corrected[i, j, particle] = pk1_particle_corrected[i, j] / system . material_density[particle] ^ 2
329346 end
330347 end
331348end
0 commit comments