Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F85148830
Dynamics.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Sep 27, 02:54
Size
2 KB
Mime Type
text/x-c++
Expires
Sun, Sep 29, 02:54 (2 d)
Engine
blob
Format
Raw Data
Handle
21135092
Attached To
rGOOSEFEM GooseFEM
Dynamics.h
View Options
/* =================================================================================================
(c - GPLv3) T.W.J. de Geus (Tom) | tom@geus.me | www.geus.me | github.com/tdegeus/GooseFEM
================================================================================================= */
#ifndef GOOSEFEM_DYNAMICS_H
#define GOOSEFEM_DYNAMICS_H
// -------------------------------------------------------------------------------------------------
#include "GooseFEM.h"
// ======================================= GooseFEM::Dynamics =======================================
namespace GooseFEM {
namespace Dynamics {
// -------------------------------------------------------------------------------------------------
class Geometry
{
public:
// solve for DOF-accelerations [ndof]
virtual ColD solve() { return ColD(); };
// reset residuals, check for convergence
virtual void reset() { return; }
virtual bool stop(double tol) { UNUSED(tol); return false; };
// process time-step
virtual void timestep(double dt) { UNUSED(dt); return; };
// return nodal vectors [nnode, ndim]
virtual MatD u() const { return MatD(); };
virtual MatD v() const { return MatD(); };
virtual MatD a() const { return MatD(); };
// return DOF values [ndof]
virtual ColD dofs_v() const { return ColD(); };
virtual ColD dofs_a() const { return ColD(); };
// overwrite nodal vectors [nnode, ndim]
virtual void set_u(const MatD &nodevec) { UNUSED(nodevec); return; };
// overwrite nodal vectors, reconstructed from DOF values [ndof]
virtual void set_v(const ColD &dofval) { UNUSED(dofval); return; };
virtual void set_a(const ColD &dofval) { UNUSED(dofval); return; };
};
// -------------------------------------------------------------------------------------------------
// evaluate one time step
inline void Verlet(Geometry &geometry, double dt);
// evaluate one time step
inline void velocityVerlet(Geometry &geometry, double dt);
// iterate until all nodes have come to a rest
inline size_t quasiStaticVelocityVerlet(Geometry &geometry, double dt, double tol);
// -------------------------------------------------------------------------------------------------
}} // namespace ...
// =================================================================================================
#endif
Event Timeline
Log In to Comment