svMultiPhysics
Loading...
Searching...
No Matches
set_output_props.h
1// SPDX-FileCopyrightText: Copyright (c) Stanford University, The Regents of the University of California, and others.
2// SPDX-License-Identifier: BSD-3-Clause
3
4// The 'output_props_map' map defined here sets equation
5// output properties from the given OutputNameType.
6//
7
8#include <tuple>
9
10/// @brief The 'OutputProps' tuple stores data for the 'outputType' object for
11///
12/// output.grp - The group that this belong to (one of outType_)
13/// output.o - Offset from the first index
14/// output.l - Length of the outputed variable
15/// output.name - The name to be used for the output and also in input file
16//
17using OutputProps = std::tuple<consts::OutputNameType, int, int, std::string>;
18
19/// @brief Reproduces Fortran READOUTPUTS.
20//
21std::map<consts::OutputNameType, OutputProps> output_props_map =
22{
23 // -----------------------------------------------------------------
24 // output group o l name
25 // -----------------------------------------------------------------
26 {OutputNameType::out_absVelocity, std::make_tuple(OutputNameType::outGrp_absV, 0, nsd, "Absolute_velocity") },
27 {OutputNameType::out_acceleration, std::make_tuple(OutputNameType::outGrp_A, 0, nsd, "Acceleration") },
28 {OutputNameType::out_cauchy, std::make_tuple(OutputNameType::outGrp_cauchy, 0, com_mod.nsymd, "Cauchy_stress") },
29
30 {OutputNameType::out_CGInv1, std::make_tuple(OutputNameType::out_CGInv1, 0, 1, "CG_Strain_Trace") },
31 {OutputNameType::out_CGstrain, std::make_tuple(OutputNameType::outGrp_C, 0, com_mod.nsymd, "CG_Strain") },
32
33 {OutputNameType::out_defGrad, std::make_tuple(OutputNameType::outGrp_F, 0, nsd*nsd, "Def_grad") },
34 {OutputNameType::out_displacement, std::make_tuple(OutputNameType::outGrp_D, 0, nsd, "Displacement") },
35 {OutputNameType::out_divergence, std::make_tuple(OutputNameType::outGrp_divV, 0, 1, "Divergence") },
36 {OutputNameType::out_energyFlux, std::make_tuple(OutputNameType::outGrp_eFlx, 0, nsd, "Energy_flux") },
37
38 {OutputNameType::out_fibAlign, std::make_tuple(OutputNameType::outGrp_fA, 0, 1, "Fiber_alignment") },
39 {OutputNameType::out_fibDir, std::make_tuple(OutputNameType::outGrp_fN, 0, nsd, "Fiber_direction") },
40 {OutputNameType::out_fibStrn, std::make_tuple(OutputNameType::outGrp_fS, 0, 1, "Fiber_shortening") },
41
42 {OutputNameType::out_heatFlux, std::make_tuple(OutputNameType::outGrp_hFlx, 0, nsd, "Heat_flux") },
43 {OutputNameType::out_integ, std::make_tuple(OutputNameType::outGrp_I, 0, 1, nsd == 2 ? "Area" : "Volume") },
44 {OutputNameType::out_jacobian, std::make_tuple(OutputNameType::outGrp_J, 0, 1, "Jacobian") },
45 {OutputNameType::out_mises, std::make_tuple(OutputNameType::outGrp_mises, 0, 1, "VonMises_stress") },
46 {OutputNameType::out_pressure, std::make_tuple(OutputNameType::outGrp_Y, nsd, 1, "Pressure") },
47 {OutputNameType::out_strain, std::make_tuple(OutputNameType::outGrp_strain, 0, com_mod.nsymd, "Strain") },
48 {OutputNameType::out_strainInv, std::make_tuple(OutputNameType::outGrp_stInv, 0, nsd, "Strain_invariants") },
49 {OutputNameType::out_stress, std::make_tuple(OutputNameType::outGrp_stress, 0, com_mod.nsymd, "Stress") },
50 {OutputNameType::out_temperature, std::make_tuple(OutputNameType::outGrp_Y, 0, 1, "Temperature") },
51 {OutputNameType::out_traction, std::make_tuple(OutputNameType::outGrp_trac, 0, nsd, "Traction") },
52 {OutputNameType::out_velocity, std::make_tuple(OutputNameType::outGrp_Y, 0, nsd, "Velocity") },
53 {OutputNameType::out_viscosity, std::make_tuple(OutputNameType::outGrp_Visc, 0, 1, "Viscosity") },
54 {OutputNameType::out_voltage, std::make_tuple(OutputNameType::outGrp_Y, 0, 1, "Action_potential") },
55 {OutputNameType::out_vortex, std::make_tuple(OutputNameType::outGrp_vortex, 0, 1, "Vortex") },
56 {OutputNameType::out_vorticity, std::make_tuple(OutputNameType::outGrp_vort, 0, maxNSD, "Vorticity") },
57 {OutputNameType::out_WSS, std::make_tuple(OutputNameType::outGrp_WSS, 0, maxNSD, "WSS") }
58};
59