5 #ifndef _PHONONINTERFACE_H_
6 #define _PHONONINTERFACE_H_
48 const Mesh& otherMesh,
68 _otherfg(otherMesh.getFaceGroup(fg.id)),
105 for (
int k=0;k<numK;k++)
112 for (
int m=0;m<numM;m++)
120 const VectorT3 sn = vg/
sqrt(pow(vg[0],2)+pow(vg[1],2)+pow(vg[2],2));
121 const X sn_dot_en = sn[0]*en[0]+sn[1]*en[1]+sn[2]*en[2];
122 const X vg_dot_en = vg[0]*en[0]+vg[1]*en[1]+vg[2]*en[2];
126 tot_in+=e_val[c0]*dk3*vg_dot_en;
127 tot_dk3+=vg_dot_en*dk3;
137 const X diff_refl = tot_in/tot_dk3;
156 X tot_dk3_other = 0.;
161 for (
int k=0;k<numKOther;k++)
168 for (
int m=0;m<numM;m++)
176 const VectorT3 sn = vg/
sqrt(pow(vg[0],2)+pow(vg[1],2)+pow(vg[2],2));
177 const X sn_dot_en = sn[0]*en[0]+sn[1]*en[1]+sn[2]*en[2];
178 const X vg_dot_en = vg[0]*en[0]+vg[1]*en[1]+vg[2]*en[2];
182 tot_in_other+=e_val[c0other]*dk3*vg_dot_en;
183 tot_dk3_other+=vg_dot_en*dk3;
193 const X diff_trans = tot_in_other/tot_dk3;
197 for (
int k=0;k<numK;k++)
203 for (
int m=0;m<numM;m++)
211 const X vg_dot_en = vg[0]*en[0]+vg[1]*en[1]+vg[2]*en[2];
233 e_val[c1]+=refl*diff_refl;
234 e_val[c1]+=trans*diff_trans;
pair< Reflection, Reflection > Refl_pair
PhononModelOptions< X > & _options
const StorageSite & _faces
Array< VectorT3 > VectorT3Array
Tkvol & getkvol(int n) const
Tmode & getmode(int n) const
const StorageSite & _otherFaces
PhononModelOptions< X > & getOptions()
const Xkspace & _kspaceOther
Vector< T_Scalar, 3 > VectorT3
const VectorT3Array & _faceAreaOther
const TArray & _faceAreaMagOther
const StorageSite & _cells
const Field & _areaMagField
const CRConnectivity & _otherFaceCells
Tangent sqrt(const Tangent &a)
Array< VectorX3 > VectorX3Array
Xmode::Refl_pair Refl_pair
NumTypeTraits< X >::T_Scalar T_Scalar
const CRConnectivity & _faceCells
const TArray & _faceAreaMag
PhononInterface(const FaceGroup &fg, const Mesh &mesh, const Mesh &otherMesh, const GeomFields &geomFields, const Xkspace &kspace, const Xkspace &kspaceOther, PhononModelOptions< X > &opts)
void applyInterfaceCondition(T_Scalar bRefl, T_Scalar bTrans) const
void applyInterfaceCondition(int f, const X refl, const X trans) const
const VectorT3Array & _faceArea
const Array< int > & _ibType
const FaceGroup & _otherfg
const StorageSite & _otherCells