- boundaryThe list of boundary IDs from the mesh where this boundary condition will be applied.
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundary IDs from the mesh where this boundary condition will be applied.
- densityDensity of the underlying bedrock.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Density of the underlying bedrock.
- displacementsThe displacement variables for the problem.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacement variables for the problem.
- input_componentsThe directions in which the input ground motions are applied.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:The directions in which the input ground motions are applied.
- p_wave_speedP-wave speed of the underlying bedrock.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:P-wave speed of the underlying bedrock.
- shear_wave_speedshear wave speed of the underlying bedrock.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:shear wave speed of the underlying bedrock.
SeismicForce
Applies a seismic force on a given boundary in a given direction proportional to input velocity.
Description
This boundary condition takes the ground velocity in a particular coordinate direction as input and converts it to a normal/tangential stress and applies this stress at the given boundary. The ground velocity is given as input using the "velocity_function" and the direction in which this velocity has to be applied is given by "vel_component".
To convert the velocity into a stress, let us a consider a uniform infinite linear elastic soil column and let us consider a 1D vertically propagating P wave traveling through this column. The normal stress at any location on the soil column is:
where is the Young's modulus, is the normal stress, is the normal strain, is the density, is the P-wave speed, is the particle velocity (or the ground velocity in this case). Note that for a 3D problem, the P-wave speed is .
Similarly, if a vertically propagating shear wave is traveling through the infinite linear elastic soil column, then, the shear stress at any location within the soil column is:
where is the shear wave speed and is the shear stress.
If the normal to boundary is not along "vel_component", then the given velocity is split into two components, one normal and one tangential to the boundary and the normal and shear stresses are then obtained using the above equations. The direction of these stresses are dependent on the orientation of the boundary. So, these stress have to be brought back to the global coordinate system using coordinate transformation and the component of the stress in the global direction given by "component" is assembled to the corresponding location in the residual vector.
Input Parameters
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified only the blocks named will be visited and made active
- alpha0The alpha parameter required for HHT time integration scheme.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The alpha parameter required for HHT time integration scheme.
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
- velocitiesThe vector of velocity variables names. The input velocities can be obtained from this variable. The size of this vector must be same size as input_component.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The vector of velocity variables names. The input velocities can be obtained from this variable. The size of this vector must be same size as input_component.
- velocity_functionsThe vector of function names that describes the input ground motions. Must be same size as input_component.
C++ Type:std::vector<FunctionName>
Unit:(no unit assumed)
Controllable:No
Description:The vector of function names that describes the input ground motions. Must be same size as input_component.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.