FEDEM Solver  R8.0
Source code of the dynamics solver
Functions/Subroutines
energyintegrationmodule Module Reference

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...
 

Detailed Description

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.

Author
Bjorn Haugen
Date
1 Oct 1997

Function/Subroutine Documentation

◆ aeroenergy()

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.

Parameters
aNodeBlade node to calculate energies for
EinpAccumulated input energy from external forces and motions
Author
Knut Morten Okstad
Date
22 Jan 2010
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkloss()

subroutine energyintegrationmodule::checkloss ( character(len=*), intent(in)  objType,
type(idtype), intent(in)  objId,
real(dp), intent(in)  time,
real(dp), intent(in)  Eloss,
real(dp), intent(in)  F,
real(dp), intent(in)  du 
)
private

Prints out a warning if negative energy loss is detected.

Parameters
[in]objTypeType name of the object to print message for
[in]objIdId of the object to print message for
[in]timeCurrent simulation time
[in]ElossEnergy loss value
[in]FForce value causing the energy loss
[in]duDisplacement increment causing the energy loss
Author
Knut Morten Okstad
Date
11 Jul 2014
Here is the caller graph for this function:

◆ damperenergies()

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.

Parameters
dmpDamper to calculate energies for
[in]timeCurrent simulation time
[in]dTimeTime increment size
EdmpEnergy loss due to damping for the mechanism
Author
Bjorn Haugen
Date
7 Dec 1999
Here is the caller graph for this function:

◆ energyinitialization()

subroutine, public energyintegrationmodule::energyinitialization ( type(mechanismtype), intent(inout)  mech,
real(dp), intent(in)  time,
integer, intent(out)  ierr 
)

Initializes the energy integration variables.

Parameters
mechMechanism components of the model
[in]timeCurrent simulation time
[out]ierrError flag
Author
Knut Morten Okstad
Date
2 Jun 2004
Here is the call graph for this function:
Here is the caller graph for this function:

◆ energyintegration()

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.

Parameters
mechMechanism components of the model
[in]timeCurrent simulation time
[in]dTimeTime increment size
[in]linearStaticIf .true., we are doing a linear static analysis
[in]doStiffDampEIf .true., use mean deformational displacement velocity when calculating energy loss due to stiffness proportional damping
[out]ierrError flag

If dTime is zero, only the potential, kinetical and strain energies are computed. The remaining quantities are then identically zero.

Author
Knut Morten Okstad
Date
2 Jun 2004
Here is the call graph for this function:
Here is the caller graph for this function:

◆ forceenergies()

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.

Parameters
forceExternal force to calculate energy for
[in]linearStaticIf .true., we are doing a linear static analysis
[in]dTimeTime increment size
EinpAccumulated energy done by external forces
Author
Bjorn Haugen
Date
14 Oct 1997
Here is the caller graph for this function:

◆ frictionenergies()

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.

Parameters
frictionFriction to calculate energies for
[in]timeCurrent simulation time
[in]dTimeTime increment size
EdmpEnergy loss due to damping for the mechanism
Author
Karl Erik Thoresen
Date
1 Apr 1998
Author
Bjorn Haugen
Date
7 Dec 1999
Here is the call graph for this function:
Here is the caller graph for this function:

◆ massenergies()

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.

Parameters
massPoint mass to calculate energies for
[in]gravVecGravitation vector
[in]dTimeTime increment size
EpotAccumulated potential energy for the mechanism
EkinAccumulated kinetic energy for the mechanism
Author
Bjorn Haugen
Date
14 Oct 1997
Here is the caller graph for this function:

◆ motionenergies()

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.

Parameters
motionPrescribed motion to calculate energy for
[in]linearStaticIf .true., we are doing a linear static analysis
[in]dTimeTime increment size
EinpAccumulated energy done by external forces and motions
Author
Knut Morten Okstad
Date
4 Oct 2005
Here is the caller graph for this function:

◆ springenergies()

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.

Parameters
sprSpring to calculate energies for
[in]linearStaticIf .true., we are doing a linear static analysis
[in]timeCurrent simulation time
[in]dTimeTime increment size
EstrAccumulated elastic strain energy for the mechanism
EinpAccumulated input energy from external forces and motions
EdmpEnergy loss due to damping for the mechanism
ierrError flag
Author
Bjorn Haugen
Date
1 Oct 1997
Here is the call graph for this function:
Here is the caller graph for this function:

◆ supelenergies()

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.

Parameters
supelSuperelement to calculate energies for
[in]gravVecGravitation vector
[in]seaLevelCurrent sea level
[in]dTimeTime increment size
[in]doStiffDampEIf .true., use mean deformational displacement velocity when calculating energy loss due to stiffness proportional damping
EpotAccumulated potential energy for the mechanism
EkinAccumulated kinetic energy for the mechanism
EstrAccumulated elastic strain energy for the mechanism
EdmpEnergy loss due to damping for the mechanism
ierrError flag

The following contributions are included:

  • Potential energy
  • Kinetic energy
  • Elastic strain energy
  • Damping loss
Author
Bjorn Haugen
Date
13 Oct 1999
Here is the call graph for this function:
Here is the caller graph for this function:

◆ supelloadenergies()

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.

Parameters
supLoadSuperelement load to calculate energy for
[in]linearStaticIf .true., we are doing a linear static analysis
[in]dTimeTime increment size
EinpAccumulated energy done by external forces
Author
Knut Morten Okstad
Date
17 Apr 2008
Here is the caller graph for this function:

◆ tireenergies()

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.

Parameters
tireTire to calculate energies for
[in]gravVecGravitation vector
[in]dTimeTime increment size
EpotAccumulated potential energy for the mechanism
EkinAccumulated kinetic energy for the mechanism
EinpAccumulated 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.

Author
Bjorn Haugen
Date
31 Oct 2002
Here is the call graph for this function:
Here is the caller graph for this function: