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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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