- declare the fluid as a superelement in the structure model. A typical call would take the form
[modelS,modelF]=fevisco('fluidtest'); % this generates demo models
cf=feplot(fevisco('fluidmerge',modelS,modelF));
fecom('curtabStack','SE:fluid')
cf.sel(1)={'innode {y>=0}& eltname~=SE','colordatamat'}
Note that the solid model modelF will often be read from NASTRAN as modeshapes (PARAM,POST,-2) or upcom superelement (PARAM,POST,-4). If node numbers in the fluid and solid are coincident, the call automatically shifts fluid node numbers.
- assembly of the fluid/structure coupling and fluid matrices with the FluidMatrix command
fevisco('fluidmatrix',cf, ...
'SelElt selface', ... % Fluid interface (in fluid SE)
'SelElt EltName quad4'); % Solid interface (in structure)
cf.Stack{'fsc'} % see the coupling superelement
Arguments of the command are
- a pointer to the feplot figure containing the solid model and fluid as a superelement
- a series of femesh commands that allows the selection of the fluid interface for which a fluid structure propertye is defined. In the example, one selects the fluid (eltname flui) and keeps its exterior boundary (SelFace).
If the generation of this interface cannot be performed using a single feutil command, then the element matrix should be provided instead of a selection command.
- a selection for the solid interface. In the example, one retains all elements but in practical applications, one will often eliminate parts of the model (weld points, stiffeners, ...). You can again provide the selection as an element matrix.
The result is stored as a fsc superelement. It is obtained by estimating translations at the fluid interface nodes trough MPCs (see ConnectionSurface) and strandard integration of the fluid/structure coupling elements. Its DOFs combine DOFs of the solid model and pressure DOFs on the fluid superelement (the MPCs are eliminated).
- The final step is to generate a reduced coupled model. This requires defining, applied loads, required sensors, and a modal model structure in vacuum (defined trough its modes def as done here, or a parametric reduced model MVR. You can start by adding additional pressure sensors then use the call
cf.Stack{'fluid'}=stack_set(cf.Stack{'fluid'},'Info','EigOpt',[6 10 -1e3]);
cf.mdl=fe_case(cf.mdl,'SensDof','Sensors',[65.01;1.19], ...
'DofLoad','Point load',[65.01]);
dsol=fe_eig(modelS,[6 20 1e3]);
cf.Stack{'info','FluidEta'}=.1; % Fluid loss set to 10 %
cf.Stack{'info','DefaultZeta'}=.01; % Structure loss set to 2 %
fevisco('fluidMakeReduced',cf.mdl,dsol);
Acoustic loads are not yet considered in this procedure.
- Reduced basis computations are then performed using low level fe2xf calls
%continuedoc
[ci,XF]=iiplot
cf.Stack{'info','Freq'}=linspace(10,250,1024)';
ci.Stack={'curve','coupled',fe2xf('frfzr',cf)};
cf.Stack{'zCoef'}(4:6,4)={'-w.^2*1e-3';1e-3;1e-3};
ci.Stack{'curve','no fluid'}=fe2xf('frfzr',cf);
iicom('iixonly',{'coupled','no fluid'})