FEDEM Solver
R8.0
Source code of the dynamics solver
|
Module with subroutines for structural energy integration. More...
Functions/Subroutines | |
subroutine | checkloss (objType, objId, time, Eloss, F, du) |
Prints out a warning if negative energy loss is detected. More... | |
subroutine, public | energyintegration (mech, time, dTime, linearStatic, doStiffDampE, ierr) |
Integrates the system energies for current time step. More... | |
subroutine, public | energyinitialization (mech, time, ierr) |
Initializes the energy integration variables. More... | |
subroutine | supelenergies (supel, gravVec, seaLevel, dTime, doStiffDampE, Epot, Ekin, Estr, Edmp, ierr) |
Calculates the system energy contributions from a superelement. More... | |
subroutine | supelloadenergies (supLoad, linearStatic, dTime, Einp) |
Calculates the incremental work done by a superelement load. More... | |
subroutine | forceenergies (force, linearStatic, dTime, Einp) |
Calculates the incremental work done by an external force. More... | |
subroutine | motionenergies (motion, linearStatic, dTime, Einp) |
Calculates the incremental work done by a prescribed motion. More... | |
subroutine | tireenergies (tire, gravVec, dTime, Epot, Ekin, Einp) |
Calculates energy contributions from a tire. More... | |
subroutine | springenergies (spr, linearStatic, time, dTime, Estr, Einp, Edmp, ierr) |
Computes strain energy, input energy and energy loss for a spring. More... | |
subroutine | damperenergies (dmp, time, dTime, Edmp) |
Calculates the incremental work done by a discrete damper. More... | |
subroutine | massenergies (mass, gravVec, dTime, Epot, Ekin) |
Calculates the kinetic and potential energy from a lumped mass. More... | |
subroutine | frictionenergies (friction, time, dTime, Edmp) |
Calculate the incremental work done by a joint friction. More... | |
subroutine | aeroenergy (aNode, Einp) |
Calculates the incremental work done by the aerodynamic force on a wind turbine blade node. More... | |
Module with subroutines for structural energy integration.
This module contains a set of subroutines for calculating the structural energy contribution for each object of the meachanism.
subroutine energyintegrationmodule::aeroenergy | ( | type(bladenode), intent(inout) | aNode, |
real(dp), intent(inout) | Einp | ||
) |
Calculates the incremental work done by the aerodynamic force on a wind turbine blade node.
aNode | Blade node to calculate energies for |
Einp | Accumulated input energy from external forces and motions |
|
private |
Prints out a warning if negative energy loss is detected.
[in] | objType | Type name of the object to print message for |
[in] | objId | Id of the object to print message for |
[in] | time | Current simulation time |
[in] | Eloss | Energy loss value |
[in] | F | Force value causing the energy loss |
[in] | du | Displacement increment causing the energy loss |
subroutine energyintegrationmodule::damperenergies | ( | type(damperbasetype), intent(inout) | dmp, |
real(dp), intent(in) | time, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Edmp | ||
) |
Calculates the incremental work done by a discrete damper.
dmp | Damper to calculate energies for | |
[in] | time | Current simulation time |
[in] | dTime | Time increment size |
Edmp | Energy loss due to damping for the mechanism |
subroutine, public energyintegrationmodule::energyinitialization | ( | type(mechanismtype), intent(inout) | mech, |
real(dp), intent(in) | time, | ||
integer, intent(out) | ierr | ||
) |
Initializes the energy integration variables.
mech | Mechanism components of the model | |
[in] | time | Current simulation time |
[out] | ierr | Error flag |
subroutine, public energyintegrationmodule::energyintegration | ( | type(mechanismtype), intent(inout) | mech, |
real(dp), intent(in) | time, | ||
real(dp), intent(in) | dTime, | ||
logical, intent(in) | linearStatic, | ||
logical, intent(in) | doStiffDampE, | ||
integer, intent(out) | ierr | ||
) |
Integrates the system energies for current time step.
mech | Mechanism components of the model | |
[in] | time | Current simulation time |
[in] | dTime | Time increment size |
[in] | linearStatic | If .true., we are doing a linear static analysis |
[in] | doStiffDampE | If .true., use mean deformational displacement velocity when calculating energy loss due to stiffness proportional damping |
[out] | ierr | Error flag |
If dTime is zero, only the potential, kinetical and strain energies are computed. The remaining quantities are then identically zero.
subroutine energyintegrationmodule::forceenergies | ( | type(forcetype), intent(inout) | force, |
logical, intent(in) | linearStatic, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Einp | ||
) |
Calculates the incremental work done by an external force.
force | External force to calculate energy for | |
[in] | linearStatic | If .true., we are doing a linear static analysis |
[in] | dTime | Time increment size |
Einp | Accumulated energy done by external forces |
subroutine energyintegrationmodule::frictionenergies | ( | type(frictiontype), intent(inout) | friction, |
real(dp), intent(in) | time, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Edmp | ||
) |
Calculate the incremental work done by a joint friction.
friction | Friction to calculate energies for | |
[in] | time | Current simulation time |
[in] | dTime | Time increment size |
Edmp | Energy loss due to damping for the mechanism |
subroutine energyintegrationmodule::massenergies | ( | type(masstype), intent(inout) | mass, |
real(dp), dimension(3), intent(in) | gravVec, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Epot, | ||
real(dp), intent(inout) | Ekin | ||
) |
Calculates the kinetic and potential energy from a lumped mass.
mass | Point mass to calculate energies for | |
[in] | gravVec | Gravitation vector |
[in] | dTime | Time increment size |
Epot | Accumulated potential energy for the mechanism | |
Ekin | Accumulated kinetic energy for the mechanism |
subroutine energyintegrationmodule::motionenergies | ( | type(motiontype), intent(inout) | motion, |
logical, intent(in) | linearStatic, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Einp | ||
) |
Calculates the incremental work done by a prescribed motion.
motion | Prescribed motion to calculate energy for | |
[in] | linearStatic | If .true., we are doing a linear static analysis |
[in] | dTime | Time increment size |
Einp | Accumulated energy done by external forces and motions |
subroutine energyintegrationmodule::springenergies | ( | type(springbasetype), intent(inout) | spr, |
logical, intent(in) | linearStatic, | ||
real(dp), intent(in) | time, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Estr, | ||
real(dp), intent(inout) | Einp, | ||
real(dp), intent(inout) | Edmp, | ||
integer, intent(inout) | ierr | ||
) |
Computes strain energy, input energy and energy loss for a spring.
spr | Spring to calculate energies for | |
[in] | linearStatic | If .true., we are doing a linear static analysis |
[in] | time | Current simulation time |
[in] | dTime | Time increment size |
Estr | Accumulated elastic strain energy for the mechanism | |
Einp | Accumulated input energy from external forces and motions | |
Edmp | Energy loss due to damping for the mechanism | |
ierr | Error flag |
subroutine energyintegrationmodule::supelenergies | ( | type(supeltype), intent(inout) | supel, |
real(dp), dimension(3), intent(in) | gravVec, | ||
real(dp), intent(in) | seaLevel, | ||
real(dp), intent(in) | dTime, | ||
logical, intent(in) | doStiffDampE, | ||
real(dp), intent(inout) | Epot, | ||
real(dp), intent(inout) | Ekin, | ||
real(dp), intent(inout) | Estr, | ||
real(dp), intent(inout) | Edmp, | ||
integer, intent(inout) | ierr | ||
) |
Calculates the system energy contributions from a superelement.
supel | Superelement to calculate energies for | |
[in] | gravVec | Gravitation vector |
[in] | seaLevel | Current sea level |
[in] | dTime | Time increment size |
[in] | doStiffDampE | If .true., use mean deformational displacement velocity when calculating energy loss due to stiffness proportional damping |
Epot | Accumulated potential energy for the mechanism | |
Ekin | Accumulated kinetic energy for the mechanism | |
Estr | Accumulated elastic strain energy for the mechanism | |
Edmp | Energy loss due to damping for the mechanism | |
ierr | Error flag |
The following contributions are included:
subroutine energyintegrationmodule::supelloadenergies | ( | type(supelloadtype), intent(inout) | supLoad, |
logical, intent(in) | linearStatic, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Einp | ||
) |
Calculates the incremental work done by a superelement load.
supLoad | Superelement load to calculate energy for | |
[in] | linearStatic | If .true., we are doing a linear static analysis |
[in] | dTime | Time increment size |
Einp | Accumulated energy done by external forces |
subroutine energyintegrationmodule::tireenergies | ( | type(tiretype), intent(inout) | tire, |
real(dp), dimension(3), intent(in) | gravVec, | ||
real(dp), intent(in) | dTime, | ||
real(dp), intent(inout) | Epot, | ||
real(dp), intent(inout) | Ekin, | ||
real(dp), intent(inout) | Einp | ||
) |
Calculates energy contributions from a tire.
tire | Tire to calculate energies for | |
[in] | gravVec | Gravitation vector |
[in] | dTime | Time increment size |
Epot | Accumulated potential energy for the mechanism | |
Ekin | Accumulated kinetic energy for the mechanism | |
Einp | Accumulated input energy from external forces and motions |
The kinetic and potential energy from the tire mass is calculated, as well as the incremental work done by the tire force from previous to current time step.