blob: 1eef0b3ee1ba7fbe6cdf42ac531177e0e6e7197b [file] [log] [blame]
//#####################################################################
// Copyright 2004, Eftychios Sifakis, Joseph Teran.
// This file is part of PhysBAM whose distribution is governed by the license contained in the accompanying file PHYSBAM_COPYRIGHT.txt.
//#####################################################################
// Class QUASISTATICS_DRIVER
//#####################################################################
#ifndef __QUASISTATICS_DRIVER__
#define __QUASISTATICS_DRIVER__
#include "../../Public_Library/Forces_And_Torques/EXTERNAL_FORCES_AND_VELOCITIES.h"
#include "../../Public_Library/Rigid_Bodies/RIGID_BODY_COLLISIONS_3D.h"
#include "../../Public_Library/Solids_And_Fluids/SOLIDS_FLUIDS_DRIVER_3D.h"
#include "QUASISTATICS_EXAMPLE.h"
namespace PhysBAM
{
template <class T, class RW>
class QUASISTATICS_DRIVER: public SOLIDS_FLUIDS_DRIVER_3D<T, RW>
{
public:
using SOLIDS_FLUIDS_DRIVER_3D<T, RW>::solids_evolution;
QUASISTATICS_EXAMPLE<T, RW>& example;
RIGID_BODY_COLLISIONS_3D<T>* rigid_body_collisions;
QUASISTATICS_DRIVER (QUASISTATICS_EXAMPLE<T, RW>& example_input)
: SOLIDS_FLUIDS_DRIVER_3D<T, RW> (example_input), example (example_input)
{
solids_evolution.quasistatic = true;
solids_evolution.newton_tolerance = example.newton_tolerance;
solids_evolution.newton_iterations = example.newton_iterations;
solids_evolution.use_partially_converged_result = example.use_partially_converged_result;
}
virtual ~QUASISTATICS_DRIVER()
{}
//#####################################################################
};
}
#endif