MATC expression in 2D array definition

Numerical methods and mathematical models of Elmer
Post Reply
wmiller
Posts: 9
Joined: 09 May 2017, 18:05
Antispam: Yes

MATC expression in 2D array definition

Post by wmiller » 09 Mar 2018, 12:26

I like to have the elastic coefficients to be temperature dependent,
i.e Youngs modulus (4,4) should to be set with temperature dependent coefficients.

I tried

Youngs modulus (4,4) = Variable Temperature
Real MATC " 1.19e11 " MATC " 2.18e10 " MATC " 1.81e10 " MATC " 0 " \
MATC " 2.18e10 " MATC " 1.15e11 " MATC " 2.18e10 " MATC " 0 " \
MATC " 1.81e10 " MATC " 2.18e10 " MATC " 1.19e11 " MATC " 0 " \
MATC " 0 " MATC " 0 " MATC " 0 " MATC " 4.55e10 "

as a simple test (later I want to use tx in the expression)
but when updating I got the error

Solver input file error: MATC ERROR: Undeclared identifier: [matc].

...offending input line: 1.19e11 matc 2.18e10 matc 1.81e10 matc 0 matc 2.18e10 matc 1.15e11 matc 2.18e10 matc 0 matc 1.81e10 matc 2.18


Is there a workaround ?

Wolfram

mzenker
Posts: 1790
Joined: 07 Dec 2009, 11:49
Location: Germany

Re: MATC expression in 2D array definition

Post by mzenker » 09 Mar 2018, 13:44

Hi,

you don't need MATC just for a table. This should work:

Code: Select all

Youngs modulus
size 4 4
Real 1.19e11  2.18e10  1.81e10  0  \
 2.18e10  1.15e11  2.18e10  0  \
 1.81e10  2.18e10  1.19e11  0  \
 0  0  0  4.55e10 \
End
The MATC keyword needs to be written only once, like in

Code: Select all

myvar = Variable Temperature
Real MATC "5.67e-8 * tx^4"; End
For details see the MATC manual, e.g. chapter 2 for array syntax... ;)

HTH,
Matthias

wmiller
Posts: 9
Joined: 09 May 2017, 18:05
Antispam: Yes

Re: MATC expression in 2D array definition

Post by wmiller » 09 Mar 2018, 14:01

this was only the first trivial test case.

In principle I like to have something like

Code: Select all

Youngs modulus (4,4) = Variable Temperature
Real MATC " 1.19e11-1.7e7*tx "  MATC " 2.18e10-1.1e7*tx " MATC " 1.81e10-1.1e6*tx " MATC " 0 " \
       MATC " 2.18e10-1.1e7*tx "  MATC " 1.15e11/5e6*tx "    MATC " 2.18e10-1.1e7*tx " MATC " 0 " \
       MATC " 1.81e10-1.1e6*tx "  MATC " 2.18e10-1.7e7*tx "  MATC " 1.19e11-1.7e7*tx " MATC " 0 " \
      MATC " 0 " MATC " 0 " MATC " 0 " MATC " 4.55e10-5e-6*tx "
Or is it possible to create the vector in MATC and MATC is returning the vector (or matrix) ?

Wolfram

raback
Site Admin
Posts: 3309
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: MATC expression in 2D array definition

Post by raback » 09 Mar 2018, 16:01

Hi Wolfram

As it happens I had some similar needs and created 4 test cases for unisotropic heat conductivity: constant, MATC, table, UDF. See the test cases HeatUniso* at devel branch since three minutes.

-Peter

annier
Posts: 1105
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: MATC expression in 2D array definition

Post by annier » 10 Mar 2018, 12:43

Hi Wolfram,
You can also observe a MATC expression written to describe the variation of anisotropic thermal conductivity with coordinate (variable)
at https://github.com/anilkunwar/elmerfem/ ... oKthml.sif.

Code: Select all

...
$function  test(x) {z=0.0;k=34.2;o=0.01; _test= k z (k*o*x(1)/(x(0)*x(0)+x(1)*x(1)+0.0000005)) z k (-k*o*x(0)/(x(0)*x(0)+x(1)*x(1)+0.0000005)) (k*o*x(1)/(x(0)*x(0)+x(1)*x(1)+0.0000005)) (-k*o*x(0)/(x(0)*x(0)+x(1)*x(1)+0.0000005)) (k*(1.0+o*o/(x(0)*x(0)+x(1)*x(1)+0.0000005))) }
! Use a non-zero very small number (0.0000005) to prevent numerical instability of division by zero when x = 0 and y = 0.

Material 1
...
Heat conductivity(3,3) = Variable Coordinate 1, Coordinate 2
Real MATC "test(tx)"
...
End 
The mathematical equation is described as Eq. 12 in https://www.sciencedirect.com/science/a ... 9517309354.
The solver input file is similar to the example:https://github.com/ElmerCSC/elmerfem/bl ... C/case.sif quoted by Peter , with the addition of function to describe the MATC expressions that are longer than 128 characters.

Peter, I would like to thank you for uploading the examples of UDF, Table and Constants.
https://github.com/ElmerCSC/elmerfem/bl ... o/case.sif
https://github.com/ElmerCSC/elmerfem/bl ... e/case.sif
https://github.com/ElmerCSC/elmerfem/bl ... F/case.sif


Yours Sincerely,
Anil Kunwar

wmiller
Posts: 9
Joined: 09 May 2017, 18:05
Antispam: Yes

Re: MATC expression in 2D array definition

Post by wmiller » 17 Aug 2018, 11:55

Thank's Anil.

The following works

Code: Select all

$function elastconst(x) {_elastconst = (1.36e11-1.65e7*x) (2.80e10-6.20e6*x) (2.43e10-6.20e6*x) 0 \
                                       (2.80e10-6.20e6*x) (1.32e11-1.70e7*x) (2.80e10-6.20e6*x) 0 \
                                       (2.43e10-6.20e6*x) (2.80e10-6.20e6*x) (1.36e11-1.65e7*x) 0 \
                                        0 0 0  (5.22e10-5.40e6*x) }
......                                        
                                        
Youngs modulus (4,4) = Variable Temperature
MATC "elastconst(tx)"
                           

Post Reply