Main Content

evaluateReaction

Evaluate reaction forces on boundary

Description

F = evaluateReaction(structuralresults,RegionType,RegionID) evaluates reaction forces on the boundary specified by RegionType and RegionID. The function uses the global Cartesian coordinate system. For transient and frequency response structural problems, evaluateReaction evaluates reaction forces for all time- and frequency-steps, respectively.

example

Examples

collapse all

Create and plot a cuboid geometry.

gm = multicuboid(0.01,0.01,0.05);
pdegplot(gm,FaceLabels="on",FaceAlpha=0.5);

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Create an femodel object for static structural analysis and include the geometry into the model.

model = femodel(AnalysisType="structuralStatic", ...
                Geometry=gm);

Specify Young's modulus and Poisson's ratio.

model.MaterialProperties = ...
    materialProperties(YoungsModulus=210E9, ...
                       PoissonsRatio=0.3);

Fix one end of the bar and apply pressure to the opposite end.

model.FaceBC(1) = faceBC(Constraint="fixed");
model.FaceLoad(2) = faceLoad(Pressure=100);

Generate a mesh and solve the problem.

model = generateMesh(model,Hmax=0.003);
structuralresults = solve(model);

Compute the reaction forces on the fixed end.

reaction = evaluateReaction(structuralresults,Face=1)
reaction = struct with fields:
    Fx: -2.3456e-05
    Fy: -1.6612e-05
    Fz: 0.0103

Evaluate the reaction forces at the fixed end of a beam subject to harmonic excitation.

Create and plot a beam geometry.

gm = multicuboid(0.06,0.005,0.01);
pdegplot(gm,FaceLabels="on",FaceAlpha=0.5)
view(50,20)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Create an femodel object for transient structural analysis and include the geometry into the model.

model = femodel(AnalysisType="structuralTransient", ...
                Geometry=gm);

Specify Young's modulus, Poisson's ratio, and the mass density of the material.

model.MaterialProperties = ...
    materialProperties(YoungsModulus=210E9, ...
                       PoissonsRatio=0.3, ...
                       MassDensity=7800);

Fix one end of the beam.

model.FaceBC(5) = faceBC(Constraint="fixed");

Apply a sinusoidal displacement along the y-direction on the end opposite the fixed end of the beam.

yDisplacemenmtFunc = ...
@(location, state) ones(size(location.y))*1E-4*sin(50*state.time);
model.FaceBC(3) = faceBC(YDisplacement=yDisplacemenmtFunc);

Generate a mesh.

model = generateMesh(model,Hmax=0.01);

Specify the zero initial displacement and velocity.

model.CellIC = cellIC(Displacement=[0;0;0],Velocity=[0;0;0]);

Solve the problem.

tlist = 0:0.002:0.2;
R = solve(model,tlist);

Compute the reaction forces on the fixed end.

reaction = evaluateReaction(R,Face=5)
reaction = struct with fields:
    Fx: [101x1 double]
    Fy: [101x1 double]
    Fz: [101x1 double]

Input Arguments

collapse all

Solution of the structural analysis problem, specified as a StaticStructuralResults, TransientStructuralResults, or FrequencyStructuralResults object. Create structuralresults by using the solve function.

Geometric region type, specified as "Edge" for a 2-D model or "Face" for a 3-D model.

Data Types: char | string

Geometric region ID, specified as a vector of positive integers. Find the region IDs by using pdegplot.

Data Types: double

Output Arguments

collapse all

Reaction forces, returned as a structure array. The array fields represent the integrated reaction forces and surface traction vector, which are computed by using the state of stress on the boundary and the outward normal.

Version History

Introduced in R2017b

expand all