Solid To Solid Collision #515
Replies: 1 comment
-
Dear Skydark, For soild-solid contact, we have an example: test_3d_self_contact Best, |
Beta Was this translation helpful? Give feedback.
-
Dear Skydark, For soild-solid contact, we have an example: test_3d_self_contact Best, |
Beta Was this translation helpful? Give feedback.
-
Dear all,
I am tried to modified example Taylor bar to model column to column collision , i have deleted wall and add 1 column again and also modified in taylor_bar.cpp , for contact dynamic i have change to ContactDensitySummation --> for solid to solid contact
The code working without error but there is no contact between two of that column , please to help solved this problem.
The results
taylor_bar.cpp
/**
*/
#include "sphinxsys.h"
#include "taylor_bar.h" /**< Case setup for this example. */
using namespace SPH;
int main(int ac, char* av[])
{
/** Setup the system. Please the make sure the global domain bounds are correctly defined. */
SPHSystem system(system_domain_bounds, particle_spacing_ref);
system.setRunParticleRelaxation(false);
system.setReloadParticles(true);
#ifdef BOOST_AVAILABLE
system.handleCommandlineOptions(ac, av);
#endif
}
taylor_bar.h
/**
*/
#pragma once
#include "sphinxsys.h"
using namespace SPH;
//----------------------------------------------------------------------
// Global geometry parameters.
//----------------------------------------------------------------------
Real PL = 0.00381; /< X-direction domain. */
Real PW = 0.02347; /< Z-direction domain. */
Real particle_spacing_ref = PL / 5.0; /**particle spacing/
/** YOU can try PW = 0.2 and particle_spacing_ref = PH / 10.0 to see an interesting test. */
Real SL = particle_spacing_ref * 4.0; /**< Length of the holder is one layer particle. */
Real inner_circle_radius = PL;
Vec3d domain_lower_bound(-4.0 * PL, -4.0 * PL, -2.0 * PW);
Vec3d domain_upper_bound(4.0 * PL, 4.0 * PL, 2.0 * PW);
BoundingBox system_domain_bounds(domain_lower_bound, domain_upper_bound);
int resolution(20);
//----------------------------------------------------------------------
// Material properties and global parameters (Cu OFE)
//----------------------------------------------------------------------
Real rho0_s = 8968.0; /< Reference density. */
Real poisson = 0.34; /< Poisson ratio. */
Real Youngs_modulus = 1.15e11;
Real yield_stress = 1.0e8;
Real hardening_modulus = 1.15e9;
/** Define the body. /
class Column1 : public ComplexShape
{
public:
explicit Column1(const std::string& shape_name) : ComplexShape(shape_name)
{
Vecd translation_column(0.0, 0.0, 0.6 PW);
add(SimTK::UnitVec3(0, 0, 1.0), inner_circle_radius,
0.5 * PW, resolution, translation_column);
}
};
/**
*/
class InitialCondition1
: public solid_dynamics::ElasticDynamicsInitialCondition
{
public:
explicit InitialCondition1(SPHBody& sph_body)
: solid_dynamics::ElasticDynamicsInitialCondition(sph_body) {};
};
/** Define the body. */
class Column2 : public ComplexShape
{
public:
explicit Column2(const std::string& shape_name) : ComplexShape(shape_name)
{
Vecd translation_column(0.0, 0.0, -0.5 * PW);
add(SimTK::UnitVec3(0, 0, 1.0), inner_circle_radius,
0.5 * PW, resolution, translation_column);
}
};
/**
*/
class InitialCondition2
: public solid_dynamics::ElasticDynamicsInitialCondition
{
public:
explicit InitialCondition2(SPHBody& sph_body)
: solid_dynamics::ElasticDynamicsInitialCondition(sph_body) {};
};
// define an observer body
class ColumnObserverParticleGenerator : public ObserverParticleGenerator
{
public:
explicit ColumnObserverParticleGenerator(SPHBody& sph_body) : ObserverParticleGenerator(sph_body)
{
positions_.push_back(Vecd(0.0, 0.0, PW));
positions_.push_back(Vecd(PL, 0.0, 0.0));
}
};
Regards
Beta Was this translation helpful? Give feedback.
All reactions