Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.

Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

PDE - Contact Resistance

Please login with a confirmed email address before reporting spam

Hi Everyone,

I am wondering how to implement electrical or thermal contact resistance when using the PDE physics.

I am using the PDE coefficient form to model thermoelectric effects at a metal-semiconductor interface. I have a working thermoelectric model, but I want to include the effects of contact resistance at the interface.

I am aware the Heat Transfer physics has a "Thin Thermally Resistive Layer" which introduces a resistance to heat flow and a discontinuity in the temperature at a boundary. However, I have been unable to simulate a similar interface resistance using PDE physics.

I am using COMSOL 4 and I appreciate any help anyone can provide.

Thank you,

- Kyle

6 Replies Last Post 08.07.2015, 04:08 GMT-4
Jim Freels mechanical side of nuclear engineering, multiphysics analysis, COMSOL specialist

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 23.09.2012, 21:30 GMT-4
First, enable COMSOL to show the equations being solved (look for "Equation View" to show below the physics item in the model tree). This will show you the equations used in the thin-film resistance boundary condition of the heat transfer module. Second, implement this yourself in the PDE mode. I have found that it is more cost effective to use what is already coded up rather than try to "reinvent the wheel".
First, enable COMSOL to show the equations being solved (look for "Equation View" to show below the physics item in the model tree). This will show you the equations used in the thin-film resistance boundary condition of the heat transfer module. Second, implement this yourself in the PDE mode. I have found that it is more cost effective to use what is already coded up rather than try to "reinvent the wheel".

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 02.10.2012, 12:01 GMT-4
Hi Everyone,

I was able to find the solution to this problem, which I have posted below.


First I want to thank James for his help. Although I was unable to directly implement the equation/methods used in the "Thin Thermally Resistive Layer", looking at these equations lead me to the following thread:

www.comsol.com/community/forums/4-1/thread/13214/

In this thread a workaround for implementing contact resistances is described, which I have summarized below.

1 - Create identity pairs for the interfaces which require contact resistance
2 - Add a pair "zero flux" boundary condition to the identity pair
3 - Add a normal "weak contribution" boundary condition for all of the boundaries in the identity pair
4 - Insert the expression below for the "weak expression" in the "weak contribution":
5 - Define the variable COND for the desired boundaries in "definitions"

if(src2dst_P1,COND*(src2dst_P1(VAR)-VAR)*test(VAR),0)+if(dst2src_P1,COND*(dst2src_P1(VAR)-VAR)*test(VAR),0)


A brief explanation of the equation (to the best of my ability). P1 represents the pair name (i.e. p1, p2, ap1, ect), COND is the interface conductance, and VAR is the dependent variable (i.e. T, V, u, ect). The src2dst and dst2src map the distance from the destination and source of the pair.


A couple of notes:
- I was unable to implement these conditions in COMSOL 4.0, as the only pair boundary available in PDE physics is continuity, as continuity adds continuity constraints the to interface.
- We have a version of COMSOL 4.1, 4.2, and 4.2a where I work. This method works on all of these versions.
- Make sure to use the normal "weak contribution" condition as the pair "weak contribution" imposes continuity constraints the to interface.
- This method does not account for heat dissipation at the interface due to voltage.


Thank you,

- Kyle
Hi Everyone, I was able to find the solution to this problem, which I have posted below. First I want to thank James for his help. Although I was unable to directly implement the equation/methods used in the "Thin Thermally Resistive Layer", looking at these equations lead me to the following thread: http://www.comsol.com/community/forums/4-1/thread/13214/ In this thread a workaround for implementing contact resistances is described, which I have summarized below. 1 - Create identity pairs for the interfaces which require contact resistance 2 - Add a pair "zero flux" boundary condition to the identity pair 3 - Add a normal "weak contribution" boundary condition for all of the boundaries in the identity pair 4 - Insert the expression below for the "weak expression" in the "weak contribution": 5 - Define the variable COND for the desired boundaries in "definitions" if(src2dst_P1,COND*(src2dst_P1(VAR)-VAR)*test(VAR),0)+if(dst2src_P1,COND*(dst2src_P1(VAR)-VAR)*test(VAR),0) A brief explanation of the equation (to the best of my ability). P1 represents the pair name (i.e. p1, p2, ap1, ect), COND is the interface conductance, and VAR is the dependent variable (i.e. T, V, u, ect). The src2dst and dst2src map the distance from the destination and source of the pair. A couple of notes: - I was unable to implement these conditions in COMSOL 4.0, as the only pair boundary available in PDE physics is continuity, as continuity adds continuity constraints the to interface. - We have a version of COMSOL 4.1, 4.2, and 4.2a where I work. This method works on all of these versions. - Make sure to use the normal "weak contribution" condition as the pair "weak contribution" imposes continuity constraints the to interface. - This method does not account for heat dissipation at the interface due to voltage. Thank you, - Kyle

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 02.10.2012, 12:06 GMT-4
Hi Everyone,

I have a new question based on this discussion.


How do I implement heat generation at the interface due to the change in voltage and electrical contact resistance?


My model is a thermoelectric model of a metal in contact with a semiconductor. Therefore, I need to model both the contact resistance and the heat generation associated with the contact resistances. I also want to model heat generation due to thermoelectric effects at interface which are coupled to the temperature and voltage field.

Again, I appreciate any help anyone can provide.

Thank you,

- Kyle
Hi Everyone, I have a new question based on this discussion. How do I implement heat generation at the interface due to the change in voltage and electrical contact resistance? My model is a thermoelectric model of a metal in contact with a semiconductor. Therefore, I need to model both the contact resistance and the heat generation associated with the contact resistances. I also want to model heat generation due to thermoelectric effects at interface which are coupled to the temperature and voltage field. Again, I appreciate any help anyone can provide. Thank you, - Kyle

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 20.10.2012, 16:00 GMT-4
Hi Everyone,

I was also able to implement heat generation at the contacts due to the electrical interface resistance.

I have outlined my approach below for anyone who is interested.
- At the boundaries of interest add a "Flux/Source"
- Insert the following equation for g for the TEMPERATURE component of the boundary:
- if(src2dst_p1,0.5*(src2dst_p1(V)-V)^2*ECC,0)+if(dst2src_p1,0.5*(dst2src_p1(V)-V)^2*ECC,0)
- Define ECC at the boundaries associated with the identity pair under definitions

ECC is the electrical contact conductance (inverse of the electrical contact resistance) and p1 is the handle for the identity pair associated with the boundary (which can be changed to ap1, p2, depending on the boundary). Notice the equation is V^2/R.

Thank you,

- Kyle
Hi Everyone, I was also able to implement heat generation at the contacts due to the electrical interface resistance. I have outlined my approach below for anyone who is interested. - At the boundaries of interest add a "Flux/Source" - Insert the following equation for g for the TEMPERATURE component of the boundary: - if(src2dst_p1,0.5*(src2dst_p1(V)-V)^2*ECC,0)+if(dst2src_p1,0.5*(dst2src_p1(V)-V)^2*ECC,0) - Define ECC at the boundaries associated with the identity pair under definitions ECC is the electrical contact conductance (inverse of the electrical contact resistance) and p1 is the handle for the identity pair associated with the boundary (which can be changed to ap1, p2, depending on the boundary). Notice the equation is V^2/R. Thank you, - Kyle

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 19.02.2013, 11:41 GMT-5
This information is very helpful. I have been looking for something similar for a while. Thanks for sharing. I will give them a try.
This information is very helpful. I have been looking for something similar for a while. Thanks for sharing. I will give them a try.

Please login with a confirmed email address before reporting spam

Posted: 9 years ago 08.07.2015, 04:08 GMT-4
Hi everyone,

thank you very much for your useful discussion, although it is a bit long ago. I have a similar problem and could not understand. I appreciate very much if some of you can give me an idea.

In my attached example, I have a contact problem:

- a cylinder is in contact with a block

- the cylinder is not constrained, the block is moved by a pressure load

- I want to define the traction between the cylinder and the blocked when they are sliding. I used the formula ks*(u-src2dst_ap1(u)) for the contact boundary load.

My question is: why the cylinder (which is not constrained) does not move with the block, but it keeps the block from moving? Only when a small value of ks, the cylinder will move?

If I want the cylinder move with a large value of ks, what is the correct way to do?

Thank you very much for your help.

- Duy
Hi everyone, thank you very much for your useful discussion, although it is a bit long ago. I have a similar problem and could not understand. I appreciate very much if some of you can give me an idea. In my attached example, I have a contact problem: - a cylinder is in contact with a block - the cylinder is not constrained, the block is moved by a pressure load - I want to define the traction between the cylinder and the blocked when they are sliding. I used the formula ks*(u-src2dst_ap1(u)) for the contact boundary load. My question is: why the cylinder (which is not constrained) does not move with the block, but it keeps the block from moving? Only when a small value of ks, the cylinder will move? If I want the cylinder move with a large value of ks, what is the correct way to do? Thank you very much for your help. - Duy

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.