53 if ( mode == VM_Total ) {
55 }
else if ( mode == VM_Velocity ) {
57 }
else if ( mode == VM_Acceleration ) {
60 OOFEM_ERROR(
"Should not be called for value mode type then total, velocity, or acceleration.");
73 OOFEM_ERROR(
"Size of coordinate system different from center of rotation.");
82 R.
at(1, 1) = cos(theta) + nx * nx * ( 1 - cos(theta) );
86 R.
at(1, 1) = cos(theta) + nx * nx * ( 1 - cos(theta) );
87 R.
at(1, 2) = nx * ny * ( 1 - cos(theta) ) - nz *sin(theta);
88 R.
at(2, 1) = ny * nx * ( 1 - cos(theta) ) + nz *sin(theta);
89 R.
at(2, 2) = cos(theta) + ny * ny * ( 1 - cos(theta) );
90 }
else if ( coords->
giveSize() == 3 ) {
93 R.
at(1, 1) = cos(theta) + nx * nx * ( 1 - cos(theta) );
94 R.
at(1, 2) = nx * ny * ( 1 - cos(theta) ) - nz *sin(theta);
95 R.
at(1, 3) = nx * nz * ( 1 - cos(theta) ) + ny *sin(theta);
97 R.
at(2, 1) = ny * nx * ( 1 - cos(theta) ) + nz *sin(theta);
98 R.
at(2, 2) = cos(theta) + ny * ny * ( 1 - cos(theta) );
99 R.
at(2, 3) = ny * nz * ( 1 - cos(theta) ) - nx *sin(theta);
101 R.
at(3, 1) = nz * nx * ( 1 - cos(theta) ) - ny *sin(theta);
102 R.
at(3, 2) = nz * ny * ( 1 - cos(theta) ) + nx *sin(theta);
103 R.
at(3, 3) = cos(theta) + nz * nz * ( 1 - cos(theta) );
105 OOFEM_ERROR(
"Size of coordinate system has to be 1, 2 or 3.");
void subtract(const FloatArray &src)
Subtracts array src to receiver.
REGISTER_BoundaryCondition(BoundaryCondition)
virtual double evaluateAccelerationAtTime(double t)=0
Returns the second time derivative of the function at given time.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
double & at(int i)
Coefficient access function.
FloatMatrix R
Rotation matrix.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Function * giveTimeFunction()
#define _IFT_RotatingBoundary_center
virtual FloatArray * giveCoordinates()
void beDifferenceOf(const FloatArray &a, const FloatArray &b)
Sets receiver to be a - b.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
DofIDItem
Type representing particular dof type.
DofIDItem giveDofID() const
Returns DofID value of receiver, which determines type of of unknown connected to receiver (e...
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
double at(int i, int j) const
Coefficient access function.
FloatArray axis
Axis and center of rotation.
virtual double evaluateVelocityAtTime(double t)=0
Returns the first time derivative of the function at given time.
Class representing vector of real numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
void zero()
Zeroes all coefficients of receiver.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
DofManager * giveDofManager() const
int giveSize() const
Returns the size of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
double normalize()
Normalizes receiver.
#define _IFT_RotatingBoundary_axis
virtual double evaluateAtTime(double t)
Returns the value of the function at given time.
void add(const FloatArray &src)
Adds array src to receiver.
virtual double give(Dof *dof, ValueModeType mode, double time)
void resize(int s)
Resizes receiver towards requested size.