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

Sync/2022.03.08 finalization merge from upstream #76

Merged
merged 58 commits into from
Mar 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
cc83f84
Merge branch 'master' into xiangyu_code_refactoring
Xiangyu-Hu Sep 9, 2021
4b9a918
Merge branch 'master' into xiangyu_code_refactoring
Xiangyu-Hu Sep 12, 2021
8e18bad
Merge branch 'master' into stable_branch_for_relase
Xiangyu-Hu Sep 23, 2021
ed5d806
delete static library for windows
Xiangyu-Hu Sep 23, 2021
5816f92
Merge branch 'stable_branch_for_relase' into xiangyu_code_refactoring
Xiangyu-Hu Sep 23, 2021
694b9d4
-werror not valid for windows
Xiangyu-Hu Sep 23, 2021
22cba7f
function incompatibility between windows and linux
Xiangyu-Hu Sep 23, 2021
ced3284
windows compile pass
Xiangyu-Hu Sep 24, 2021
efcd778
Merge pull request #65 from Xiangyu-Hu/stable_branch_for_relase
Xiangyu-Hu Sep 24, 2021
faa88ca
Pull webassembly and recent changes (#67)
BenceVirtonomy Oct 22, 2021
9172f28
Merge remote-tracking branch 'origin/xiangyu_code_refactoring' into x…
Xiangyu-Hu Dec 11, 2021
470fba5
Merge branch 'master' into xiangyu_code_refactoring
Dec 13, 2021
66522c3
update from bibucket on 12.18.2021
Xiangyu-Hu Dec 17, 2021
bee8da3
modify the pass critria,
Xiangyu-Hu Dec 18, 2021
9c07eab
small bug in2d taylor green case
Xiangyu-Hu Dec 18, 2021
5b07a2f
[ci skip]
Xiangyu-Hu Dec 18, 2021
9608341
Merge pull request #76 from Xiangyu-Hu/xiangyu_small_change_no_ci
Xiangyu-Hu Dec 18, 2021
a3a26a2
Merge branch 'master' into mrge_with_bitbucket
Xiangyu-Hu Dec 18, 2021
dc94b32
release pressure test in 3d dambreak
Xiangyu-Hu Dec 18, 2021
4c7da34
revise action with two step ctest
Xiangyu-Hu Dec 18, 2021
7945bda
Merge pull request #75 from Xiangyu-Hu/mrge_with_bitbucket
Xiangyu-Hu Dec 18, 2021
afb64f4
revise action
Xiangyu-Hu Dec 18, 2021
2c4446a
new line at end
Xiangyu-Hu Dec 18, 2021
c4c4e44
new line at end
Xiangyu-Hu Dec 18, 2021
a7ad42c
no regression test for 3d dambreak
Xiangyu-Hu Dec 19, 2021
389bdca
run the second try only when the first fails
Xiangyu-Hu Dec 19, 2021
1b02b61
update condtional expression
Xiangyu-Hu Dec 19, 2021
ecd0cc4
maximum five tries
Xiangyu-Hu Dec 19, 2021
f715470
Merge pull request #77 from Xiangyu-Hu/mrge_with_bitbucket
Xiangyu-Hu Dec 20, 2021
333e98d
update from bitbucket 02/05/2022
Xiangyu-Hu Feb 5, 2022
44ac83e
modify fsi2 case to neglect regression test
Xiangyu-Hu Feb 5, 2022
60d74cb
Merge pull request #83 from Xiangyu-Hu/bitbucket-main
Xiangyu-Hu Feb 7, 2022
cebdd5c
swap unsorted_id between index_i and last_real_particle_index
alundilong Feb 14, 2022
39f0cb4
[ci skip]
alundilong Feb 15, 2022
99a3671
Merge pull request #84 from Xiangyu-Hu/hotfix/hotfix_SwitchToBufferPa…
Xiangyu-Hu Feb 15, 2022
6457fbc
Merge branch 'master' into merge_upstream/PR_2022.02.16
FabienPean-Virtonomy Feb 16, 2022
1788186
Fix symbol redefinition in 3d solid_particles_supplementary
FabienPean-Virtonomy Feb 16, 2022
b36024f
Fix 3d dambreak example
FabienPean-Virtonomy Feb 16, 2022
155f636
Fix symbol redefinition in 2d solid_particles_supplementary
FabienPean-Virtonomy Feb 16, 2022
afffe3c
Remove some 2d examples breaking CI from tests
FabienPean-Virtonomy Feb 16, 2022
4b15de0
Remove test_3d_taylor_bar passing or failing across CI runs for no re…
FabienPean-Virtonomy Feb 17, 2022
5f08475
update from bitbucket 02.17.2022
Xiangyu-Hu Feb 17, 2022
00e60d2
Revert "Remove test_3d_taylor_bar passing or failing across CI runs f…
FabienPean-Virtonomy Feb 18, 2022
146e69f
Revert "Remove some 2d examples breaking CI from tests"
FabienPean-Virtonomy Feb 18, 2022
8357f67
Revert "Remove regression test from test_3d_dambreak"
FabienPean-Virtonomy Feb 18, 2022
f7697b8
Merge remote-tracking branch 'upstream/bitbucket-main' into merge_ups…
FabienPean-Virtonomy Feb 22, 2022
e022505
Fix atop latest upstream changes
FabienPean-Virtonomy Feb 22, 2022
6d5fbdb
Fix build for 2d
FabienPean-Virtonomy Feb 22, 2022
4b87e29
Fix out of bounds access for 2D in solid_dynamics.cpp
FabienPean-Virtonomy Mar 7, 2022
b6756e2
Restore to upstream choice of stress relaxation in test_2d_self_contact
FabienPean-Virtonomy Mar 7, 2022
7b37093
Fix regression data for test_2d_sliding
FabienPean-Virtonomy Mar 7, 2022
893d7a0
Merge pull request #91 from BenceVirtonomy/merge_upstream/2022.02.18-…
Xiangyu-Hu Mar 8, 2022
eff433f
Merge remote-tracking branch 'upstream/master'
FabienPean-Virtonomy Mar 8, 2022
48341a2
Enforce copy/move correctness
FabienPean-Virtonomy Mar 11, 2022
d433c10
Fix missing method implementation
FabienPean-Virtonomy Mar 11, 2022
1315498
Fix missing include
FabienPean-Virtonomy Mar 14, 2022
c083cf6
Fix includes
FabienPean-Virtonomy Mar 14, 2022
0385cb0
Fix relaxation dynamics error
FabienPean-Virtonomy Mar 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions SPHINXsys/src/for_2D_build/common/data_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ namespace SPH {
using SymMatd = SymMat2d;
using AngularVecd = Real;

using BoundingBox = BoundingBox2d;

using Transformd = Transform2d;

template<class DataType, int ARRAY_SIZE>
Expand Down
225 changes: 105 additions & 120 deletions SPHINXsys/src/for_2D_build/geometries/level_set_supplementary.cpp

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions SPHINXsys/src/for_2D_build/meshes/base_mesh_supplementary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,21 @@ namespace SPH {
}, ap);
}
//=============================================================================================//
Vecu BaseMesh::transfer1DtoMeshIndex(const Vecu &number_of_grid_points, size_t i)
Vecu BaseMesh::transfer1DtoMeshIndex(const Vecu &number_of_mesh_indexes, size_t i)
{
size_t row_size = number_of_grid_points[1];
size_t row_size = number_of_mesh_indexes[1];
size_t column = i / row_size;
return Vec2u(column, i - column * row_size);
}
//=============================================================================================//
size_t BaseMesh::transferMeshIndexTo1D(const Vecu &number_of_grid_points, const Vecu &grid_index)
size_t BaseMesh::transferMeshIndexTo1D(const Vecu &number_of_mesh_indexes, const Vecu &mesh_index)
{
return grid_index[0] * number_of_grid_points[1] + grid_index[1];
return mesh_index[0] * number_of_mesh_indexes[1] + mesh_index[1];
}
//=============================================================================================//
size_t BaseMesh::transferMeshIndexToMortonOrder(const Vecu &grid_index)
size_t BaseMesh::transferMeshIndexToMortonOrder(const Vecu &mesh_index)
{
return MortonCode(grid_index[0]) | (MortonCode(grid_index[1]) << 1);
return MortonCode(mesh_index[0]) | (MortonCode(mesh_index[1]) << 1);
}
}
//=============================================================================================//
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include "base_kernel.h"
#include "base_body.h"
#include "base_particles.h"
#include "base_particle_dynamics.h"
#include "neighbor_relation.h"

namespace SPH
Expand Down
125 changes: 71 additions & 54 deletions SPHINXsys/src/for_2D_build/meshes/mesh_with_data_packages.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,32 @@
#include "mesh_with_data_packages.h"

//=================================================================================================//
namespace SPH {
namespace SPH
{
//=================================================================================================//
template<int PKG_SIZE, int ADDRS_SIZE>
template<class DataType>
DataType BaseDataPackage<PKG_SIZE, ADDRS_SIZE>
::probeDataPackage(PackageDataAddress<DataType>& pkg_data_addrs, const Vecd& position)
template <int PKG_SIZE, int ADDRS_SIZE>
template <class DataType>
DataType BaseDataPackage<PKG_SIZE, ADDRS_SIZE>::
probeDataPackage(PackageDataAddress<DataType> &pkg_data_addrs, const Vecd &position)
{
Vecu grid_idx = CellIndexFromPosition(position);
Vecd grid_pos = GridPositionFromIndex(grid_idx);
Vecd alpha = (position - grid_pos) / grid_spacing_;
Vecd beta = Vec2d(1.0) - alpha;

DataType bilinear
= *pkg_data_addrs[grid_idx[0]][grid_idx[1]] * beta[0] * beta[1]
+ *pkg_data_addrs[grid_idx[0] + 1][grid_idx[1]] * alpha[0] * beta[1]
+ *pkg_data_addrs[grid_idx[0]][grid_idx[1] + 1] * beta[0] * alpha[1]
+ *pkg_data_addrs[grid_idx[0] + 1][grid_idx[1] + 1] * alpha[0] * alpha[1];
DataType bilinear = *pkg_data_addrs[grid_idx[0]][grid_idx[1]] * beta[0] * beta[1] +
*pkg_data_addrs[grid_idx[0] + 1][grid_idx[1]] * alpha[0] * beta[1] +
*pkg_data_addrs[grid_idx[0]][grid_idx[1] + 1] * beta[0] * alpha[1] +
*pkg_data_addrs[grid_idx[0] + 1][grid_idx[1] + 1] * alpha[0] * alpha[1];

return bilinear;
return bilinear;
}
//=================================================================================================//
template<int PKG_SIZE, int ADDRS_SIZE>
template<typename InDataType, typename OutDataType>
template <int PKG_SIZE, int ADDRS_SIZE>
template <typename InDataType, typename OutDataType>
void BaseDataPackage<PKG_SIZE, ADDRS_SIZE>::
computeGradient(PackageDataAddress<InDataType>& in_pkg_data_addrs,
PackageDataAddress<OutDataType> out_pkg_data_addrs, Real dt)
computeGradient(PackageDataAddress<InDataType> &in_pkg_data_addrs,
PackageDataAddress<OutDataType> out_pkg_data_addrs, Real dt)
{
for (int i = 1; i != PKG_SIZE + 1; ++i)
for (int j = 1; j != PKG_SIZE + 1; ++j)
Expand All @@ -46,11 +46,11 @@ namespace SPH {
}
}
//=================================================================================================//
template<int PKG_SIZE, int ADDRS_SIZE>
template<typename InDataType, typename OutDataType>
template <int PKG_SIZE, int ADDRS_SIZE>
template <typename InDataType, typename OutDataType>
void BaseDataPackage<PKG_SIZE, ADDRS_SIZE>::
computeNormalizedGradient(PackageDataAddress<InDataType>& in_pkg_data_addrs,
PackageDataAddress<OutDataType> out_pkg_data_addrs, Real dt)
computeNormalizedGradient(PackageDataAddress<InDataType> &in_pkg_data_addrs,
PackageDataAddress<OutDataType> out_pkg_data_addrs, Real dt)
{
for (int i = 1; i != PKG_SIZE + 1; ++i)
for (int j = 1; j != PKG_SIZE + 1; ++j)
Expand All @@ -62,11 +62,11 @@ namespace SPH {
}
}
//=================================================================================================//
template<int PKG_SIZE, int ADDRS_SIZE>
template<typename DataType>
template <int PKG_SIZE, int ADDRS_SIZE>
template <typename DataType>
void BaseDataPackage<PKG_SIZE, ADDRS_SIZE>::
initializePackageDataAddress(PackageData<DataType>& pkg_data,
PackageDataAddress<DataType>& pkg_data_addrs)
initializePackageDataAddress(PackageData<DataType> &pkg_data,
PackageDataAddress<DataType> &pkg_data_addrs)
{
for (int i = 0; i != ADDRS_SIZE; ++i)
for (int j = 0; j != ADDRS_SIZE; ++j)
Expand All @@ -75,10 +75,10 @@ namespace SPH {
}
}
//=================================================================================================//
template<int PKG_SIZE, int ADDRS_SIZE>
template<typename DataType>
DataType BaseDataPackage<PKG_SIZE, ADDRS_SIZE>::
CornerAverage(PackageDataAddress<DataType>& pkg_data_addrs, Veci addrs_index, Veci corner_direction)
template <int PKG_SIZE, int ADDRS_SIZE>
template <typename DataType>
DataType BaseDataPackage<PKG_SIZE, ADDRS_SIZE>::
CornerAverage(PackageDataAddress<DataType> &pkg_data_addrs, Veci addrs_index, Veci corner_direction)
{
DataType average(0);
for (int i = 0; i != 2; ++i)
Expand All @@ -91,19 +91,19 @@ namespace SPH {
return average * 0.25;
}
//=================================================================================================//
template<int PKG_SIZE, int ADDRS_SIZE>
template<typename DataType>
template <int PKG_SIZE, int ADDRS_SIZE>
template <typename DataType>
void BaseDataPackage<PKG_SIZE, ADDRS_SIZE>::
assignPackageDataAddress(PackageDataAddress<DataType>& pkg_data_addrs, Vecu& addrs_index,
PackageData<DataType>& pkg_data, Vecu& data_index)
assignPackageDataAddress(PackageDataAddress<DataType> &pkg_data_addrs, Vecu &addrs_index,
PackageData<DataType> &pkg_data, Vecu &data_index)
{
pkg_data_addrs[addrs_index[0]][addrs_index[1]] = &pkg_data[data_index[0]][data_index[1]];
}
//=================================================================================================//
template<class MeshFieldType, class DataPackageType>
template<typename DataType, typename PackageDataType, PackageDataType DataPackageType:: * MemPtr>
template <class MeshFieldType, class DataPackageType>
template <typename DataType, typename PackageDataType, PackageDataType DataPackageType::*MemPtr>
DataType MeshWithDataPackages<MeshFieldType, DataPackageType>::
DataValueFromGlobalIndex(Vecu global_grid_index)
DataValueFromGlobalIndex(const Vecu &global_grid_index)
{
Vecu pkg_index_(0);
Vecu local_data_index(0);
Expand All @@ -113,54 +113,71 @@ namespace SPH {
pkg_index_[n] = cell_index_in_this_direction;
local_data_index[n] = global_grid_index[n] - cell_index_in_this_direction * pkg_size_;
}
PackageDataType& data = data_pkg_addrs_[pkg_index_[0]][pkg_index_[1]]->*MemPtr;
PackageDataType &data = data_pkg_addrs_[pkg_index_[0]][pkg_index_[1]]->*MemPtr;
return data[local_data_index[0]][local_data_index[1]];
}
//=================================================================================================//
template<class MeshFieldType, class DataPackageType>
void MeshWithDataPackages<MeshFieldType, DataPackageType>::initializePackageAddressesInACell(Vecu cell_index)
template <class MeshFieldType, class DataPackageType>
void MeshWithDataPackages<MeshFieldType, DataPackageType>::
initializePackageAddressesInACell(const Vecu &cell_index)
{
int i = (int)cell_index[0];
int j = (int)cell_index[1];

DataPackageType* data_pkg = data_pkg_addrs_[i][j];
if (data_pkg->is_inner_pkg_) {
DataPackageType *data_pkg = data_pkg_addrs_[i][j];
if (data_pkg->is_inner_pkg_)
{
for (int l = 0; l != pkg_addrs_size_; ++l)
for (int m = 0; m != pkg_addrs_size_; ++m) {
std::pair<int, int> x_pair = CellShiftAndDataIndex(l);
std::pair<int, int> y_pair = CellShiftAndDataIndex(m);
data_pkg->assignAllPackageDataAddress(Vecu(l, m),
for (int m = 0; m != pkg_addrs_size_; ++m)
{
std::pair<int, int> x_pair = CellShiftAndDataIndex(l);
std::pair<int, int> y_pair = CellShiftAndDataIndex(m);
data_pkg->assignAllPackageDataAddress(
Vecu(l, m),
data_pkg_addrs_[i + x_pair.first][j + y_pair.first],
Vecu(x_pair.second, y_pair.second));
}
}
}
//=================================================================================================//
template<class MeshFieldType, class DataPackageType>
template <class MeshFieldType, class DataPackageType>
void MeshWithDataPackages<MeshFieldType, DataPackageType>::allocateMeshDataMatrix()
{
Allocate2dArray(data_pkg_addrs_, number_of_cells_);
}
//=================================================================================================//
template<class MeshFieldType, class DataPackageType>
template <class MeshFieldType, class DataPackageType>
void MeshWithDataPackages<MeshFieldType, DataPackageType>::deleteMeshDataMatrix()
{
Delete2dArray(data_pkg_addrs_, number_of_cells_);
}
//=================================================================================================//
template<class MeshFieldType, class DataPackageType>
template<class DataType, typename PackageDataAddressType, PackageDataAddressType DataPackageType:: * MemPtr>
DataType MeshWithDataPackages<MeshFieldType, DataPackageType>::probeMesh(const Vecd& position)
template <class MeshFieldType, class DataPackageType>
void MeshWithDataPackages<MeshFieldType, DataPackageType>::
assignDataPackageAddress(const Vecu &cell_index, DataPackageType *data_pkg)
{
data_pkg_addrs_[cell_index[0]][cell_index[1]] = data_pkg;
}
//=================================================================================================//
template <class MeshFieldType, class DataPackageType>
DataPackageType *MeshWithDataPackages<MeshFieldType, DataPackageType>::
DataPackageFromCellIndex(const Vecu &cell_index)
{
return data_pkg_addrs_[cell_index[0]][cell_index[1]];
}
//=================================================================================================//
template <class MeshFieldType, class DataPackageType>
template <class DataType, typename PackageDataAddressType, PackageDataAddressType DataPackageType::*MemPtr>
DataType MeshWithDataPackages<MeshFieldType, DataPackageType>::probeMesh(const Vecd &position)
{
Vecu grid_index =CellIndexFromPosition(position);
Vecu grid_index = CellIndexFromPosition(position);
size_t i = grid_index[0];
size_t j = grid_index[1];

DataPackageType* data_pkg = data_pkg_addrs_[i][j];
PackageDataAddressType& pkg_data_addrs = data_pkg->*MemPtr;
return data_pkg->is_inner_pkg_ ?
data_pkg->DataPackageType::template probeDataPackage<DataType>(pkg_data_addrs, position)
: *pkg_data_addrs[0][0];
DataPackageType *data_pkg = data_pkg_addrs_[i][j];
PackageDataAddressType &pkg_data_addrs = data_pkg->*MemPtr;
return data_pkg->is_inner_pkg_ ? data_pkg->DataPackageType::template probeDataPackage<DataType>(pkg_data_addrs, position)
: *pkg_data_addrs[0][0];
}
//=================================================================================================//
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include "base_mesh.h"
#include "base_body.h"
#include "base_particles.h"
#include "base_particle_dynamics.h"

namespace SPH {
//=================================================================================================//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@
*/

#include "solid_particles.h"
#include "solid_particles_variable.h"
#include "base_body.h"

namespace SPH {
namespace SPH
{
//=============================================================================================//
void SolidParticles::ParticleTranslationAndRotation(Transformd& transform)
void SolidParticles::ParticleTranslationAndRotation(Transformd &transform)
{
for (size_t i = 0; i != total_real_particles_; ++i)
{
Expand Down Expand Up @@ -102,20 +104,50 @@ namespace SPH {
return getVonMisesStressFromMatrix(sigma);
}
//=================================================================================================//
Vecd ElasticSolidParticles::displacement(size_t particle_i) //not tested in 2D
Real ElasticSolidParticles::von_Mises_strain(size_t particle_i) //not tested in 2D
{
Vecd disp = pos_n_[particle_i] - pos_0_[particle_i];
return disp;

Mat2d F = F_[particle_i];
Mat2d epsilon = 0.5 * (~F * F - Mat2d(1.0)); //calculation of the Green-Lagrange strain tensor

Real epsilonxx = epsilon(0, 0);
Real epsilonyy = epsilon(1, 1);
Real epsilonzz = 0; //z-components zero for 2D measures
Real epsilonxy = epsilon(0, 1);
Real epsilonxz = 0; //z-components zero for 2D measures
Real epsilonyz = 0; //z-components zero for 2D measures

return sqrt((1.0 / 3.0) * (std::pow(epsilonxx - epsilonyy, 2.0) + std::pow(epsilonyy - epsilonzz, 2.0) +
std::pow(epsilonzz - epsilonxx, 2.0)) +
2.0 * (std::pow(epsilonxy, 2.0) + std::pow(epsilonyz, 2.0) + std::pow(epsilonxz, 2.0)));
}
//=================================================================================================//
Vecd ElasticSolidParticles::normal(size_t particle_i) //not tested in 2D
//=============================================================================================//
void VonMisesStress::operator()(size_t index_i, Real dt)
{
Vecd normal_vec = n_[particle_i];
return normal_vec;
Real J = rho0_ / rho_n_[index_i];
Mat2d F = F_[index_i];
Mat2d stress = stress_PK1_[index_i];
Mat2d sigma = (stress * ~F) / J;

Real sigmaxx = sigma(0, 0);
Real sigmayy = sigma(1, 1);
Real sigmaxy = sigma(0, 1);

derived_variable_[index_i] =
sqrt(sigmaxx * sigmaxx + sigmayy * sigmayy - sigmaxx * sigmayy + 3.0 * sigmaxy * sigmaxy);
}
//=================================================================================================//
Real ElasticSolidParticles::von_Mises_strain(size_t particle_i) //not tested in 2D
//=============================================================================================//
void VonMisesStrain::operator()(size_t index_i, Real dt)
{
return von_Mises_strain_static(particle_i);
Mat2d F = F_[index_i];
Mat2d epsilon = 0.5 * (~F * F - Mat2d(1.0)); //calculation of the Green-Lagrange strain tensor

Real epsilonxx = epsilon(0, 0);
Real epsilonyy = epsilon(1, 1);
Real epsilonxy = epsilon(0, 1);

derived_variable_[index_i] = sqrt(0.5 * ((epsilonxx - epsilonyy) * (epsilonxx - epsilonyy) +
epsilonyy * epsilonyy + epsilonxx * epsilonxx +
2.0 * epsilonxy * epsilonxy));
}
}
2 changes: 2 additions & 0 deletions SPHINXsys/src/for_3D_build/common/data_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ namespace SPH {
using SymMatd = SymMat3d;
using AngularVecd = Vec3d;

using BoundingBox = BoundingBox3d;

using Transformd = Transform3d;

template<class DataType, int ARRAY_SIZE>
Expand Down
1 change: 1 addition & 0 deletions SPHINXsys/src/for_3D_build/geometries/all_geometries.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
This is the header file that user code should include to pick up all
geometry classes used in SPHinXsys. **/

#include "geometric_shape.h"
#include "triangle_mesh_shape.h"
#include "image_shape.h"
#include "level_set_shape.h"
Expand Down
Loading