5 #ifndef StressStrainControlBoundary_H
6 #define StressStrainControlBoundary_H
47 void read(std::istream& is)
override;
50 void write(std::ostream& os)
const override;
65 bool isStrainRateControlled,
const Matrix3D& iGain = {0, 0, 0, 0, 0, 0, 0, 0, 0});
Scalar * b
Definition: benchVecAdd.cpp:17
Definition: BaseBoundary.h:28
Implementation of a 3D matrix.
Definition: Kernel/Math/Matrix.h:17
Definition: PIController.h:49
Container to store pointers to all particles.
Definition: ParticleHandler.h:28
Container to store pointers to all BasePeriodicBoundary objects.
Definition: PeriodicBoundaryHandler.h:24
A cuboid box consists of periodic boundaries that can be strain/stress controlled and achieve differe...
Definition: StressStrainControlBoundary.h:34
const PIController & getXX() const
getter for xx
Definition: StressStrainControlBoundary.h:109
bool isStrainRateControlled_
The boolean input, true means switch on the strain rate control for particles affine movements.
Definition: StressStrainControlBoundary.h:136
void set(const Matrix3D &stressGoal, const Matrix3D &strainRate, const Matrix3D &pGain, bool isStrainRateControlled, const Matrix3D &iGain={0, 0, 0, 0, 0, 0, 0, 0, 0})
Sets all boundary inputs at once and determines which deformation mode it is, then combine the right ...
Definition: StressStrainControlBoundary.cc:288
PIController xy
Definition: StressStrainControlBoundary.h:133
void write(std::ostream &os) const override
Adds object's id_ to given ostream.
Definition: StressStrainControlBoundary.cc:44
void checkPeriodicLeesEdwardsBoundariesAfterParticlesMove(ParticleHandler &particleHandler)
Call the boundary and update them based on the new domain size after the stress-control movement.
Definition: StressStrainControlBoundary.cc:121
Mdouble integratedShift_
Shift integrated for all the time when using Lees-Edwards Boundary.
Definition: StressStrainControlBoundary.h:139
std::vector< PeriodicBoundary > periodicBoundaries_
Definition: StressStrainControlBoundary.h:147
PIController xx
PI-Controllers for the strain rate in xx, xy, yy, zz directions.
Definition: StressStrainControlBoundary.h:133
Matrix3D getStressGoal() const
Accesses the target stress tensor.
Definition: StressStrainControlBoundary.h:96
void activateStrainRateControl(const ParticleHandler &particleHandler)
Activate the strainrate control for particle movement based on user's boolean input.
Definition: StressStrainControlBoundary.cc:176
PIController zz
Definition: StressStrainControlBoundary.h:133
virtual ~StressStrainControlBoundary()=default
destructor.
StressStrainControlBoundary * copy() const override
Used to create a copy of the object.
Definition: StressStrainControlBoundary.cc:35
const PIController & getXY() const
getter for xy
Definition: StressStrainControlBoundary.h:111
Mdouble computeStressError()
Definition: StressStrainControlBoundary.cc:28
std::string getName() const override
Sets the name of the boundary.
Definition: StressStrainControlBoundary.cc:87
Matrix3D getGainFactor() const
Accesses the gainFactor.
Definition: StressStrainControlBoundary.h:99
const PIController & getZZ() const
getter for zz
Definition: StressStrainControlBoundary.h:115
void createPeriodicParticles(ParticleHandler &particleHandler) override
Create the periodic particles after read in from a restart file to attain right information.
Definition: StressStrainControlBoundary.cc:374
Matrix3D pGainFactor_
Definition: StressStrainControlBoundary.h:124
Matrix3D strainRate_
Definition: StressStrainControlBoundary.h:124
Matrix3D getStrainRate() const
Accesses the strainrate tensor.
Definition: StressStrainControlBoundary.h:93
void determineLengthAndCentre()
Determine the length in x,y,z and center location of domain.
Definition: StressStrainControlBoundary.cc:138
void setStrainRate(const Matrix3D &strainRate)
Definition: StressStrainControlBoundary.cc:365
Matrix3D stressGoal_
Stores the stress value the boundary should attain.
Definition: StressStrainControlBoundary.h:124
Matrix3D iGainFactor_
Definition: StressStrainControlBoundary.h:130
void read(std::istream &is) override
Reads the object's id_ from given istream.
Definition: StressStrainControlBoundary.cc:70
void determineStressControlledShearBoundaries()
Determines stress-controlled shear Lees-Edwards boundary in x-y direction and normal periodic in z di...
Definition: StressStrainControlBoundary.cc:245
void checkBoundaryAfterParticlesMove(ParticleHandler &particleHandler) override
Virtual function that does things to particles, each timestep after particles have moved.
Definition: StressStrainControlBoundary.cc:97
void updateDomainSize()
Update the domain to new sizes.
Definition: StressStrainControlBoundary.cc:223
PIController yy
Definition: StressStrainControlBoundary.h:133
std::vector< LeesEdwardsBoundary > leesEdwardsBoundaries_
Definition: StressStrainControlBoundary.h:146
void computeStrainRate()
Compute the change of strainrate tensor based on the stress difference and then update the tensor.
Definition: StressStrainControlBoundary.cc:149
StressStrainControlBoundary()
default constructor.
Definition: StressStrainControlBoundary.cc:16
double getIntegratedShift() const
Definition: StressStrainControlBoundary.h:106
const PIController & getYY() const
getter for yy
Definition: StressStrainControlBoundary.h:113
StressStrainControlBoundary(const StressStrainControlBoundary &b)=default
copy constructor.
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286