• Nie Znaleziono Wyników

Fast and smooth simulation of space-time problems

N/A
N/A
Protected

Academic year: 2021

Share "Fast and smooth simulation of space-time problems"

Copied!
46
0
0

Pełen tekst

(1)

of space-time problems

Day 4

Department of Computer Science

AGH University of Science and Technology, Kraków, Poland home.agh.edu.pl/paszynsk

1 / 46

(2)
(3)

Isogeometric finite element method

Alternating Directions Implicit (ADI) method Isogeometric L2 projections

Explicit dynamics

Example 1: Heat transfer Installation of IGA-ADS solver

Parallel distributed memory explicit dynamics Parallel shared memory explicit dynamics

Example 2: Non-linear flow in heterogenous media Implicit dynamics

Example 3: Implicit heat transfer Example 4: Linear elasticity Example 5: Pollution problem Labs with implict dynamics

3 / 46

(4)

Program Title: IGA-ADS

Code: git clone https://github.com/marcinlos/iga-ads Licensing provisions: MIT license (MIT)

Programming language: C++

Nature of problem: Solving non-stationary problems in 1D, 2D and 3D

Solution method: Alternating direction solver with isogeometric finite element method

If you use this software in your work, please cite

Marcin Łoś, Maciej Woźniak, Maciej Paszyński, Andrew Lenharth, Keshav Pingali IGA-ADS : Isogeometric Analysis FEM using ADS solver, Computer & Physics Communications 217 (2017) 99-116 (available on researchgate.org)

(5)

The Alternating Direction Implicit (ADI) method

G. Birkhoff, R.S. Varga, D. Young, Alternating direction implicit methods, Advanced Computing (1962)

du

dt − Lxu − Lyu = f du

dtui −1,j − 2ui ,j+ ui +1,j

h2ui ,j−1− 2ui ,j + ui ,j+1

h2 = f

ut+0.5i ,j − ui ,jt

dtut+0.5i −1,j − 2ui ,jt+0.5+ ut+0.5i +1,j

h2 = uti ,j−1− 2ui ,jt + ui ,j+1t h2 +fi ,jt ui ,jt+1− ut+0.5i ,j

dtut+1i ,j−1− 2ui ,jt+1+ ui ,j+1t+1

h2 =

ut+0.5i −1,j − 2ui ,jt+0.5+ ui +1,jt+0.5

h2 + fi ,jt+0.5

5 / 46

(6)

G. Birkhoff, R.S. Varga, D. Young, Alternating direction implicit methods, Advanced Computing (1962)

ui −1,jt+0.5[−2dt

h2 ] + ui ,jt+0.5[1 + 2dt

h2 ] + ui +1,jt+0.5[−2dt h2 ] = dtuti ,j−1− 2ui ,jt + uti ,j+1

h2 + dtfi ,jt for i = 1, ..., Nx, j = 1, ..., Ny.

ui ,j−1t [−2dt

h2 ] + uti ,j[1 + 2dt

h2 ] + ui ,j+1t [−2dt h2 ] = dtui −1,jt+0.5− 2ui ,jt+0.5+ ui −1,jt+0.5

h2 + dtfi ,jt+0.5

(7)

The Alternating Direction Implicit (ADI) method

G. Birkhoff, R.S. Varga, D. Young, Alternating direction implicit methods, Advanced Computing (1962)

ui −1,jt+0.5[−2dt] + ui ,jt+0.5[h2+ 2dt] + ui +1,jt+0.5[−2dt] = dtui ,j−1t − 2uti ,j+ ui ,j+1t + h2dtfi ,jt for i = 1, ..., Nx, j = 1, ..., Ny.

ui ,j−1t [−2dt] + uti ,j[h2+ 2dt] + ui ,j+1t [−2dt] = ut+0.5i −1,j − 2ui ,jt+0.5+ ut+0.5i −1,j + h2dtfi ,jt+0.5 for j = 1, ..., Ny, i = 1, ..., Nx.

7 / 46

(8)

The Alternating Direction Implicit (ADI) method

G. Birkhoff, R.S. Varga, D. Young, Alternating direction implicit methods, Advanced Computing (1962)

h2+ 2dt −2dt 0 · · · · · · · · · · · · 0

−2dt h2+ 2dt −2dt 0 · · · · · · · · · 0

0 −2dt h2+ 2dt −2dt 0 · · · · · · 0

.. .

.. .

.. .

.. .

.. .

.. .

.. .

0 · · · · · · 0 −2dt h2+ 2dt −2dt

0 · · · · · · · · · 0 −2dt h2+ 2dt

ut+0.51,1 ut+0.5 1,2 ut+0.51,3

.. . ut+0.5

Nx ,Ny −1 ut+0.5

Nx ,Ny

=

−2ut1,1+ u1,2t + h2dtf1,1t ut1,1− 2ut1,2+ ut1,3+ h2dtfi ,jt

.. . ut

Nx ,Ny −2− 2ut

Nx ,Ny −1+ ut

Nx ,Ny+ h2dtft Nx ,Ny −1 ut

Nx ,Ny −1− 2ut

Nx ,Ny+ h2dtft Nx ,Ny

(9)

du

dt − Lu = f

assuming constant coefficients and regular cube shape domain, where L = Lx+ Ly is a separable differential operator, e.g.

Laplacian, where L = Lx+ Ly = ∂x2u2 + ∂y2u2. First, we apply the alternating direction method with respect to time. We introduce the intermediate time steps

ut+0.5− ut

dt − Lxut+0.5− Lyut = ft ut+1− ut+0.5

dt − Lxut+0.5− Lyut+1= ft+0.5 We obtain

ut+0.5− dt ∗ Lxut+0.5= ut+ dt ∗ Lyut+ dt ∗ ft

ut+1− dt ∗ Lyut+0.1= ut+0.5+ dt ∗ Lxut+0.5+ dt ∗ ft+0.5

9 / 46

(10)

Now, we transform the problem into a weak form by taking L2-scalar products with test functions

(ut+0.5− dt ∗ Lxut+0.5, v ) = (ut+ dt ∗ Lyut+ dt ∗ ft, v ) (ut+1− dt ∗ Lyut+0.1, v ) = (ut+0.5+ dt ∗ Lxut+0.5+ dt ∗ ft+0.5, v )

(11)

We have ∂x Bj;py (y ) = 0 and ∂x Bl ;py (y ) = 0. Namely, Z

Bi ;px (x )Bj;py (y )Bk;px (x )Bl ;py (y )dxdy + Z

(

∂xBi ;px (x ))Bj;py (y )(

∂xBk;px (x ))Bl ;py (y ) and we can separate directions

Z

Bi ;px (x )Bk;px (x )Bj;py (y )Bl ;py (y )dxdy + Z

(

∂xBi ;px (x ))(

∂xBk;px (x ))Bj;py (y )Bl ;py (y ) so our left-hand-side matrix is the Kronecker product of

[ Z

(Bi ;px (x )Bk;px (x ) + (

∂xBi ;px (x ))(

∂xBk;px (x )))dx ]∗

[ Z

(Bj;py (y ) ∗ Byl ;p(y ))dy ]

and this can be expressed as multiplication of two multi-diagonal matrices, to be factorized in a linear O(N) cost. 11 / 46

(12)

We can apply the same process for the second equation. Namely, the matrix of the left-hand-side (ut+1, v ) − (Lyut+1, v ) of (1) have

terms Z

Bi ;px (x )Bj;py (y )Bk;px (x )Bl ;py (y )dxdy + Z

∂y(Bi ;px (x )Bj;py (y ))

∂y(Bk;px (x )Bl ;py (y ))dxdy Now, since ∂y Bi ;px (x ) = 0 and dydBk;px (x ) = 0 we get

Z

Bi ;px (x )Bj;py (y )Bk;px (x )Bl ;py (y )dxdy + Z

Bi ;px (x )(

∂yBj;py (y ))Bk;px (x )(

∂yBl ;py (y ))

(13)

We can separate directions Z

Bi ;px (x )Bk;px (x )Bj;py (y )Bl ;py (y )dxdy + Z

(Bi ;px (x )Bk;px (x )(

∂yBj;py (y ))(

∂yBl ;py (y )) so our left-hand-side matrix is the Kronecker product of

[ Z

(Bi ;px (x )Bk;px (x )dx ]∗

[ Z

(Bj;py (y ) ∗ Bl ;py (y ))dy + (

∂yBj;px (y ))(

∂yBl ;py (y )))]

and this can be expressed as multiplication of two matrices, and both the first and the second matrix are mutli-diagonal and can be factorized in a linear O(N) cost.

13 / 46

(14)

Let us consider heat equation on 2D domain

tu − ∆u = f (1)

Assuming zero boundary conditons (Dirichlet or Neumann) the weak formulation is given by

(∂tu, v )L2 = −(∇u, ∇v )L2+ (u, f )L2 (2) Let Bij(x , y ) = Bix(x )Bjy(y ) be the standard tensor product basis.

We seek solution of the form

u(x, t) =Xuij(t) Bij(x)

(15)

Let us denote

M = [(Bij, Bkl)L2] S = [(∇Bij, ∇Bkl)L2] F = [(f , Bij)L2] (3) and

Mx =h(Bxi, Byj)L2i Sx =h(∂xBxi, ∂xBxj)L2i (4) and similarly for My, My.

All these matrices are symmetric and positive definite, as Gram matrices of certain sets of functions.

It is straightforward to prove that

M = Mx ⊗ My S = Sx ⊗ My + Mx ⊗ Sy (5)

15 / 46

(16)

In the implicit scheme we have (ut+1

2, v )L2+h

2(∂xut+1

2, ∂xv )L2 = (ut, v )L2h

2(∂yut, ∂yv )L2 (ut+1, v )L2+ h

2(∂yut+1, ∂yv )L2 = (ut+1

2, v )L2h

2(∂xut+1

2, ∂xv )L2 (6) Resulting linear systems may be expressed as

 M + h

2Sx⊗ My

 ut+1

2 =

 M − h

2Mx⊗ Sy

 ut

 M + h

2Mx⊗ Sy



ut+1=

 M − h

2Sx⊗ My

 ut+1

2

(7)

(17)

Since M = Mx⊗ My,



Mx +h 2Sx



⊗ My

 ut+1

2 =

 Mx



Myh 2Sy



ut

 Mx



My +h 2Sy



ut+1=



Mxh 2Sx



⊗ My

 ut+1

2

(8)

Let us denote

K+x = Mx +h

2Sx Kx = Mxh 2Sx K+y = My +h

2Sy Ky = Myh 2Sy

(9)

Then we can write

K+x ⊗ My ut+1

2 =hMx ⊗ Kyi ut

hMx ⊗ K+yi ut+1=Kx ⊗ Myut+1

2

(10)

17 / 46

(18)

K+x ⊗ My ut+1

2 =hMx ⊗ Kyi ut

hMx ⊗ K+yi ut+1=Kx ⊗ Myut+1

2

(11)

and so finally, combining two steps

ut+1=hMx ⊗ Ky+i−1Kx ⊗ My K+x ⊗ My−1hMx ⊗ Kyi ut (12) This can be simplified using properties of tensor product:

(A ⊗ B)−1= A−1⊗ B−1

(A ⊗ B) (C ⊗ D) = (AC) ⊗ (BD) whenever the products make sense

(19)

Using these, we conclude that

hMx⊗ K+yiKx ⊗ My K+x ⊗ My−1hMx⊗ Kyi=



M−1xK+y−1



Kx ⊗ Myh K+x−1⊗ M−1y i hMx⊗ Kyi=



M−1xK+y−1

h

Kx K+x−1⊗ Ii hMx⊗ Kyi=



M−1xK+y−1

h

Kx K+x−1Mx ⊗ Kyi= h

M−1x Kx K+x−1Mx

i



K+y−1Ky



(13)

19 / 46

(20)

Using these, we conclude that ut+1=hM−1x Kx K+x−1Mx

i



K+y−1Ky



ut (14)

Eigenvalues of A ⊗ B are products of eigenvalues of A and B, so it is enough to determine eigenvalues of the above two matrices.

The matrix hM−1x Kx (K+x)−1Mx

i

is similar to Kx (K+x)−1 and so it has the same eigenvalues.

Furthermore, AB and BA always have the same spectrum, so Kx (K+x)−1 has the same eigenvalues as (K+x)−1Kx. So we check the eigenvalues of (K+x)−1Kx.

By Lemma eigenvalues λ of (K+x)−1Kx and K+y−1Ky

satisfy |λ| < 1, so the single step full matrix has spectral radius <1.

Thus, the implicit ADS scheme is unconditiionally stable.

(21)

Lemma

Let A, B be symmetric and positive-definite. For each eigenvalue λ of (A + B)−1(A − B) we have |λ| < 1.

Proof.

Let λ 6= 0 be such eigenvalue and let x be the corresponding eigenvector. Then (A + B)−1(A − B) x = λx and so

(A − B) x = λ (A + B) x and (1 − λ)Ax = (1 + λ)Bx.

Since B is positive-definite it is nonsingular, and so Bx 6= 0.

Thus λ 6= 1. Multiplying by xT on the left gives xTAx = 1+λ1−λ xTBx.

Since A and B are positive definite, both products are positive, thus λ ∈ R and 1+λ1−λ > 0 =⇒ λ2 < 1 ⇐⇒ |λ| < 1

21 / 46

(22)
(23)

Unit cube deformed by short impulse applied at the corner

ρ∂2u

∂t2 = ∇ · σ + F on Ω × [0, T ]

u(x , 0) = 0 for x ∈ Ω

σ · ^n = 0 on ∂ Ω

(15)

where Ω = [0, 1]3 is an unit cube,

u is an unknown 3-dimensional displacement vector ρ is material density,

f is the applied external force, σij = cijkllk is the stress tensor where ij = 12(∂jui + ∂iuj)

and c is rank-4 elasticity tensor (prescribed for a given material)

23 / 46

(24)

ρ = 1,

c = 0 except for cijij = cijji = 1 for i , j = 1, 2, 3,

so that c is positive definite and satisfies symmetry constraints stemming from its physical meaning.

The force applied is given by

F(x, t) = −φ(t/t0)r (x) p (16)

p = (1, 1, 1) (17)

t0 = 0.02 (18)

φ(t) =

(t2(1 − t)2 if t ∈ (0, 1)

0 otherwise (19)

r (x) = 10 exp−10 kx − pk2 (20) i.e. a short impulse directed towards the origin, applied at the

(25)

In order to utilize forward Euler integration scheme, the above system of 3 equations is converted to system of 6 equations by introducing additional variables corresponding to components of the displacement’s velocity:

vi = ∂ui

∂t (21)

Corresponding weak formulation discretized with the Euler scheme is given by

hu(t+1)i , w i = hui(t)+ ∆t vi(t), w i hvi(t+1), w i = hvi(t)+∆t

ρ ij,j+ Fi) , w i (22) for all w ∈ H1(Ω), where h·, ·i denotes standard scalar product in L2(Ω), and ui, vi ∈ H1(Ω).

25 / 46

(26)

We are going to use multiple cores

#include "ads/executor/galois.hpp"

#include "problems/elasticity/elasticity.hpp"

pilot for the simulation int main() {

quadratic B-splnes, 12 elements along axis dim_config dim{ 2, 12 };

40000 time steps, time step size 10−4

timesteps_config steps{ 40000, 1e-4 };

we will need to compute first derivatives during the computations int ders = 1;

some auxiliary objects for configuration and simulation config_3d c{dim, dim, dim, steps, ders};

problems::linear_elasticity sim{c};

run the simulation

(27)

"problems/elasticity/elasticity.hpp"

#include <cmath>

#include "ads/simulation.hpp" Parallel loop processing

#include "ads/executor/galois.hpp" Generation of graphics

#include "ads/output_manager.hpp"

namespace problems {

class linear_elasticity : public ads::simulation_3d { struct state {

vector_type ux, uy, uz;

vector_type vx, vy, vz;

state(std::array<std::size_t, 3> shape) : ux{ shape }, uy{ shape }, uz{ shape } : vx{ shape }, vy{ shape }, vz{ shape } { }

};

state now, prev;

The class to write down output for graphics ads::output_manager<3> output;

The class to parallel loop processing

ads::galois_executor executor{8}; 27 / 46

(28)

class linear_elasticity : public ads::simulation_3d {

...

implementation of the initial state

double init_state(double x, double y, double z) executed once before the simulation starts

void before() override

executed before every simulation step void before_step() override implementation of the simulation step void step() override

executed after every simulation step void after_step() override implementation of generation of RHS void compute_rhs() override

(29)

"problems/elasticity/elasticity.hpp"

this function is called before every time step

void before_step(int /*iter*/, double /*t*/) override {

using std::swap;

swap ut and ut−1 swap(u, u_prev);

}

this function implements every time step

void step(int /*iter*/, double /*t*/) override { generate new RHS using u_prev

compute_rhs();

forward and backward substitutions with multiple RHS

for_all(now, [this](vector_type& a) { solve(a); });

}

29 / 46

(30)

this function is called once before the simulation starts void before() override {

performs LU factorization of three 1D systems, representing B-splines along x , y and z axes

prepare_matrices();

}

void compute_rhs(double t) {

for_all(now, [](vector_type& a) { zero(a); });

executor.for_each(elements(), [&](index_type e) { auto local = local_contribution(e, t);

executor.synchronized([&] {

apply_local_contribution(local, e);

});

(31)

"problems/elasticity/elasticity.hpp"

void apply_local_contribution(const state& loc, index_type e) { // update_global_rhs(now.ux, loc.ux, e);

update_global_rhs(now.uy, loc.uy, e);

update_global_rhs(now.uz, loc.uz, e);

update_global_rhs(now.vx, loc.vx, e);

update_global_rhs(now.vy, loc.vy, e);

update_global_rhs(now.vz, loc.vz, e);

}

31 / 46

(32)

{

auto local=state{ local_shape()};doubleJ=jacobian(e);

for (auto q : quad_points()) {

auto x = point(e, q); double w = weigth(q);

value_type ux = eval_fun(prev.ux, e, q);

value_type uy = eval_fun(prev.uy, e, q);

value_type uz = eval_fun(prev.uz, e, q);

value_type vx = eval_fun(prev.vx, e, q);

value_type vy = eval_fun(prev.vy, e, q);

value_type vz = eval_fun(prev.vz, e, q);

tensor eps = {

{ux.dx,0.5*(ux.dy+uy.dx),0.5*(ux.dz+uz.dx) }, {0.5*(ux.dy+uy.dx),uy.dy,0.5*(uy.dz+uz.dy) }, {0.5*(ux.dz+uz.dx),0.5*(uy.dz+uz.dy),uz.dz } };

(33)

for (auto a : dofs_on_element(e)) { value_type b = eval_basis(e, q, a);

double rho = 1;

double axb = (-s[0][0]*b.dx - s[0][1]*b.dy - s[0][2]*b.dz + F[0]*b.val) / rho;

double ayb = (-s[1][0]*b.dx - s[1][1]*b.dy - s[1][2]*b.dz + F[1]*b.val) / rho;

double azb = (-s[2][0]*b.dx - s[2][1]*b.dy - s[2][2]*b.dz + F[2]*b.val) / rho;

double dt = steps.dt; double t2 = dt * dt / 2;

auto aa = dof_global_to_local(e, a);

ref(local.ux, aa) += ((ux.val+dt*vx.val)*b.val + t2*axb) *w*J;

ref(local.uy, aa) += ((uy.val+dt*vy.val)*b.val + t2*ayb) *w*J;

ref(local.uz, aa) += ((uz.val+dt*vz.val)*b.val + t2*azb) *w*J;

ref(local.vx, aa) += (vx.val * b.val + dt * axb) * w*J;

ref(local.vy, aa) += (vy.val * b.val + dt * ayb) * w*J;

ref(local.vz, aa) += (vz.val * b.val + dt * azb) * w*J;

33 / 46

(34)

"problems/elasticity/elasticity.hpp"

void after_step(int iter, double t) override { if (iter % 100 == 0) {

double Ek = kinetic_energy();

double Ep = potential_energy();

compute_potential_energy();

output.to_file("out_%d.vti", iter, output.evaluate(now.ux),

output.evaluate(now.uy), output.evaluate(now.uz), output.evaluate(energy));

}

(35)

Click in the middle

35 / 46

(36)

We solve linear elasticity problem given by

ρ ∂ttu = ∇ · σ + F on Ω × [0, T ] u(x , 0) = u0 for x ∈ Ω

σ · ^n = 0 on ∂ Ω

(23)

where Ω = [0, 1]3 is an unit cube, u is a 3-dimensional displacement vector to be calculated, ρ is material density, F is the applied external force, and σ is the Cauchy stress tensor, given by

σij = cijkllk, ij = 1

2(∂jui+ ∂iuj) (24) and c is the elasticity tensor.

(37)

The above second-order system can be converted to system of 6 first-order equations by introducing additional variable v = ∂tu:

( tu = v

ρ∂tv = ∇ · σ + F (25) We assume an isotropic elastic material and thus the Lame

parameters,

σ = 2µ + λ tr  I (26)

thus

∇ · σ = 2µ(∇ · ) + λ ∇ tr  (27)

37 / 46

(38)

Furthermore,

∇ ·  = 1 2

2∂xxux +yyux+ ∂yxuy +zzux+ ∂zxuz

xxuy + ∂xyux +2∂yyuy + zzuy+ ∂zyuz

xxuz+ ∂xzux +yyuz+ ∂yzuy +2∂zzuz

(28) and

∇ tr  =

xxux+ ∂xyuy + ∂xzuz

yxux+yyuy + ∂yzuz

zxux+ ∂zyuy +zzuz

(29)

(39)

We split every timestep into three substeps

u(t+13)= u(t)+ dt 3 v(t) ρv(t+13)= ρv(t)+dt

3

∇ · σ(t+13)+ F

(30)

u(t+23)= u(t+13)+dt 3 v(t+13) ρv(t+23)= ρv(t+13)+dt

3

∇ · σ(t+23)+ F

(31)

39 / 46

(40)

u(t+1)= u(t+23)+dt 3 v(t+23) ρv(t+1)= ρv(t+23)+dt

3

∇ · σ(t+1)+ F

(32)

and σ(t+k3) are constructed using u = u(t+k−13 )+ dt

3 v(t+k−13 )

in most places, except when ui appears inside i -th component of ∇ · σ under a double derivative with respect to x (k = 1), y (k = 2) or z (k = 3).

(41)

These cases are marked in equations (28) and (29) withred, brown, andbluecolor, respectively. In other words, we separate the

operator into its diagonal part and the off-diagonal part, the diagonal part we treat implicitly, while the remainder we treat explicitly. After moving all the terms with values to be computed to the left-hand side, substep equations have the following form:

ρ v(t+

1 3)

xdt

3 (λ + 2µ) ∂xxv(t+

1 3)

x = . . . ρ v(t+

1 3)

ydt

3 µ ∂xxv(t+

1 3)

y = . . .

ρ v(t+

1 3)

zdt

3 µ ∂xxv(t+

1 3)

z = . . .

(33)

ρ v(t+

2 3)

xdt

3 µ ∂yyv(t+

2 3)

x = . . .

ρ v(t+

2 3)

ydt

3 (λ + 2µ) ∂yyv(t+

2 3)

y = . . . ρ v(t+

2 3)

zdt

3 µ ∂yyv(t+

2 3)

z = . . .

(34)

41 / 46

(42)

ρ vx(t+1)dt

3 µ ∂zzvx(t+1) = . . . ρ vy(t+1)dt

3 µ ∂zzvy(t+1) = . . . ρ vz(t+1)dt

3 (λ + 2µ) ∂zzvz(t+1) = . . .

(35)

This formulation is then transformed into a sequence of isogeometric projections in a standard way.

(43)

Click in the middle 10 times less time steps

43 / 46

(44)

We seek the pollution density scalar field c : Ω → R such as:

∂c

∂t + u · ∇c − ∇ · (K ∇c) = e on Ω × [0, T ]

∇c · ˆn = 0 on ∂ Ω × [0, T ] c(x, 0) = c0(x) on Ω

(36)

where Ω = [0, 1]3,

ˆn is a normal vector of the domain boundary, T is a length of the time interval for the simulation, u is the prescribed wind,

e is the prescribed emission from the chimney, K is the diffusion,

and c0 is an initial state.

(45)

Ω = 5km × 5km × 5km Mesh size = 100 × 100 × 100

Wind = F ∗ (cosa(t), sina(t), v (t)) where a(t) = π/3(sin(s) + 0.5sin(2.3s)) + 3/8π v (t) = 1/3sin(s)

s = t/150

chimney e(p) = (r − 1)2(r + 1)2 where r = min(1, (|p − p0|/25)2) p0 = (3000, 2000, 2000)

Diffusion K = (50, 50, 0.5)

We run 300 time steps of the implicit method

45 / 46

(46)

Cytaty

Powiązane dokumenty

Although the use of animated simulation for modeling business processes has been gaining popularity in the last 10 years, there is currently very little research reported in

This, coupled with the cost of constructing wind farms and the low energy output from individual wind turbines leads to a relatively inefficient method for large-scale production

We give here a comparison of the expected outcome theory, the expected utility theory, and the Bayesian decision theory, by way of a simple numerical toy problem in which we look at

Oceania Eastern Asia Ireland Switzerland Luxembourg United Kingdom Belgium Austria Denmark Finland Sweden Norway Italy Spain Greece Cyprus Malta Poland Czech Republic Lithuania

The methods are (a) a statistical technique, which assumes a linear regression between the topography and the gravity anomaly [Balling, 1980], (b) a local isostatic compensa-

Podsta­ wowe ujęcie ma bowiem charakter pragmatyczny, a zatem koncentruje się wokół różnorodnych zastosowań fotografii, jakie pojawiają się w obszarze

Zaprezentowana metoda badania jednostek przestrzennych, oparta o synte- tyczny wskaźnik rozwoju ekonomiczno-społecznego, może być użyta do oceny trafności przyjętych rozwiązań,

few iterations; the interior error, which is considerably smaller, really decreases iteration after iteration so that we can conclude that the only error we add by using our