Files
solver/OndselSolver/IntegratorInterface.h
aiksiongkoh 3d6a23a678 Cmake gtest (#72)
* Check rackpin and gear for zero radii

* rebase zero-radii-check (#69)

* contributing

* Update push-freecad.yml

updated actions/checkout to v4

* dragging log for debugging

* fix calcdxNorm crash

* setDebug and remove MBDyn*

* Update cmakelists.txt

* fix includes for gcc-14

gcc-14 is more disciplined about not including <algorithm> transitively.

* fix runDragStep

* backhoe files (#65)

* Mark unused variables to silence compiler warnings. (#64)

* Backhoe issues (#67)

* backhoe issues

* runDragStep edit

* backhoe issues

* runDragStep edit

* Reduce large drag step progressively until convergence.

* Switch to using built-in M_PI, even on MSVC (#68)

---------

Co-authored-by: Brad Collette <bradcollette@pop-os.localdomain>
Co-authored-by: mosfet80 <realeandrea@yahoo.it>
Co-authored-by: PaddleStroke <pierrelouis.boyer@gmail.com>
Co-authored-by: Jed Brown <jed@jedbrown.org>
Co-authored-by: sliptonic <shopinthewoods@gmail.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>

* in progress

* Gtest added

---------

Co-authored-by: Brad Collette <bradcollette@pop-os.localdomain>
Co-authored-by: mosfet80 <realeandrea@yahoo.it>
Co-authored-by: PaddleStroke <pierrelouis.boyer@gmail.com>
Co-authored-by: Jed Brown <jed@jedbrown.org>
Co-authored-by: sliptonic <shopinthewoods@gmail.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2024-07-30 14:45:59 -06:00

44 lines
1.6 KiB
C++

/***************************************************************************
* Copyright (c) 2023 Ondsel, Inc. *
* *
* This file is part of OndselSolver. *
* *
* See LICENSE file for details about copyright. *
***************************************************************************/
#pragma once
#include "Integrator.h"
//#include "BasicQuasiIntegrator.h"
namespace MbD {
class BasicQuasiIntegrator;
class IntegratorInterface : public Integrator
{
//tout hout hmin hmax tstart tend integrator
public:
void initializeGlobally() override;
virtual void preRun() override = 0;
virtual void checkForDiscontinuity() = 0;
void setSystem(Solver* sys) override;
void logString(const std::string& str) override;
void run() override;
size_t orderMax();
virtual void incrementTime(double tnew);
void postFirstStep() override;
virtual double suggestSmallerOrAcceptFirstStepSize(double hnew) = 0;
virtual double suggestSmallerOrAcceptStepSize(double hnew) = 0;
virtual void checkForOutputThrough(double t) = 0;
virtual void interpolateAt(double t);
SystemSolver* system = nullptr;
double tout = 0.0, hout = 0.0, hmin = 0.0, hmax = 0.0, tstart = 0.0, tend = 0.0;
std::shared_ptr<BasicQuasiIntegrator> integrator;
};
}