1 Info << "\nReading coupling properties" << endl;
2 IOdictionary couplingProperties
15 // Read solid patch data
16 word solidPatchName(couplingProperties.lookup("solidPatch"));
20 stressMesh.boundaryMesh().findPatchID(solidPatchName)
25 FatalErrorIn(args.executable())
26 << "Problem with finding solid patch"
30 word solidZoneName(couplingProperties.lookup("solidZone"));
33 stressMesh.faceZones().findZoneID(solidZoneName);
37 FatalErrorIn(args.executable())
38 << "Problem with finding solid zone"
42 // const label solidPatchStart =
43 // stressMesh.boundaryMesh()[solidPatchID].start();
45 // const faceZone& solidZone = stressMesh.faceZones()[solidZoneID];
48 // Read fluid patch data
49 word fluidPatchName(couplingProperties.lookup("fluidPatch"));
52 mesh.boundaryMesh().findPatchID(fluidPatchName);
56 FatalErrorIn(args.executable())
57 << "Problem with finding fluid patch"
61 word fluidZoneName(couplingProperties.lookup("fluidZone"));
64 mesh.faceZones().findZoneID(fluidZoneName);
68 FatalErrorIn(args.executable())
69 << "Problem with finding fluid zone"
73 // const label fluidPatchStart =
74 // mesh.boundaryMesh()[fluidPatchID].start();
76 // const faceZone& fluidZone = mesh.faceZones()[fluidZoneID];
79 // Check mesh motion solver type
81 mesh.objectRegistry::foundObject<tetPointVectorField>
86 mesh.objectRegistry::foundObject<pointVectorField>
92 // Grab solid patch field
95 DU.boundaryField()[solidPatchID].type()
96 != solidTractionFvPatchVectorField::typeName
97 //!= tractionDisplacementIncrementFvPatchVectorField::typeName
100 FatalErrorIn(args.executable())
101 << "Bounary condition on " << DU.name()
103 << DU.boundaryField()[solidPatchID].type()
104 << "for fluid -solid interface patch, instead "
105 << solidTractionFvPatchVectorField::typeName
106 //<< tractionDisplacementIncrementFvPatchVectorField::typeName
107 << abort(FatalError);
110 //tractionDisplacementIncrementFvPatchVectorField& tForce =
111 // refCast<tractionDisplacementIncrementFvPatchVectorField>
112 solidTractionFvPatchVectorField& tForce =
113 refCast<solidTractionFvPatchVectorField>
115 DU.boundaryField()[solidPatchID]
119 // Accumulated fluid interface displacement
120 IOobject accumulatedFluidInterfaceDisplacementHeader
122 "accumulatedFluidInterfaceDisplacement",
128 vectorField* accumulatedFluidInterfaceDisplacementPtr = NULL;
130 if(accumulatedFluidInterfaceDisplacementHeader.headerOk())
132 Pout << "Reading accumulated fluid interface displacement" << endl;
134 accumulatedFluidInterfaceDisplacementPtr =
139 "accumulatedFluidInterfaceDisplacement",
149 accumulatedFluidInterfaceDisplacementPtr =
154 "accumulatedFluidInterfaceDisplacement",
162 mesh.boundaryMesh()[fluidPatchID].nPoints(),
168 vectorField& accumulatedFluidInterfaceDisplacement
169 = *accumulatedFluidInterfaceDisplacementPtr;