本文整理汇总了Golang中github.com/cpmech/gosl/io.PfYel函数的典型用法代码示例。如果您正苦于以下问题:Golang PfYel函数的具体用法?Golang PfYel怎么用?Golang PfYel使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PfYel函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Test_nurbs02
func Test_nurbs02(tst *testing.T) {
//verbose()
chk.PrintTitle("nurbs02. square with initial stress. run")
// fem
analysis := NewFEM("data/nurbs02.sim", "", true, false, false, false, chk.Verbose, 0)
// run simulation
err := analysis.Run()
if err != nil {
tst.Errorf("Run failed\n%v", err)
return
}
// domain
dom := analysis.Domains[0]
e := dom.Elems[0].(*ElemU)
io.PfYel("fex = %v\n", e.fex)
io.PfYel("fey = %v\n", e.fey)
la.PrintMat("K", e.K, "%10.2f", false)
// solution
var sol ana.CteStressPstrain
sol.Init(fun.Prms{
&fun.Prm{N: "qnH0", V: -20},
&fun.Prm{N: "qnV0", V: -20},
&fun.Prm{N: "qnH", V: -50},
&fun.Prm{N: "qnV", V: -100},
})
// check displacements
t := dom.Sol.T
tolu := 1e-16
for _, n := range dom.Nodes {
eqx := n.GetEq("ux")
eqy := n.GetEq("uy")
u := []float64{dom.Sol.Y[eqx], dom.Sol.Y[eqy]}
io.Pfyel("u = %v\n", u)
sol.CheckDispl(tst, t, u, n.Vert.C, tolu)
}
// check stresses
tols := 1e-13
for idx, ip := range e.IpsElem {
x := e.Cell.Shp.IpRealCoords(e.X, ip)
σ := e.States[idx].Sig
io.Pforan("σ = %v\n", σ)
sol.CheckStress(tst, t, σ, x, tols)
}
}
示例2: main
func main() {
mpi.Start(false)
defer func() {
mpi.Stop(false)
}()
if mpi.Rank() == 0 {
io.PfYel("\nTest MPI 03\n")
}
if mpi.Size() != 3 {
chk.Panic("this test needs 3 processors")
}
x := []int{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
n := len(x)
id, sz := mpi.Rank(), mpi.Size()
start, endp1 := (id*n)/sz, ((id+1)*n)/sz
for i := start; i < endp1; i++ {
x[i] = i
}
//io.Pforan("x = %v\n", x)
// IntAllReduceMax
w := make([]int, n)
mpi.IntAllReduceMax(x, w)
var tst testing.T
chk.Ints(&tst, fmt.Sprintf("IntAllReduceMax: x @ proc # %d", id), x, []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
//io.Pfred("x = %v\n", x)
}
示例3: CheckFront0
// CheckFront0 returns front0 and number of failed/success
func CheckFront0(opt *Optimiser, verbose bool) (nfailed int, front0 []*Solution) {
front0 = make([]*Solution, 0)
var nsuccess int
for _, sol := range opt.Solutions {
var failed bool
for _, oor := range sol.Oor {
if oor > 0 {
failed = true
break
}
}
if failed {
nfailed++
} else {
nsuccess++
if sol.FrontId == 0 {
front0 = append(front0, sol)
}
}
}
if verbose {
if nfailed > 0 {
io.PfRed("N failed = %d out of %d\n", nfailed, opt.Nsol)
} else {
io.PfGreen("N success = %d out of %d\n", nsuccess, opt.Nsol)
}
io.PfYel("N front 0 = %d\n", len(front0))
}
return
}
示例4: skip
// skip skips test based on it and/or t
func (o testKb) skip() bool {
if o.itmin >= 0 {
if o.it < o.itmin {
return true // skip
}
}
if o.itmax >= 0 {
if o.it > o.itmax {
return true // skip
}
}
if o.tmin >= 0 {
if o.t < o.tmin {
return true // skip
}
}
if o.tmax >= 0 {
if o.t > o.tmax {
return true // skip
}
}
if o.verb {
io.PfYel("\nit=%2d t=%v\n", o.it, o.t)
}
return false
}
示例5: Test_nurbs03
func Test_nurbs03(tst *testing.T) {
//verbose()
chk.PrintTitle("nurbs03. ini stress free square")
// fem
analysis := NewFEM("data/nurbs03.sim", "", true, false, false, false, chk.Verbose, 0)
// run simulation
err := analysis.Run()
if err != nil {
tst.Errorf("Run failed\n%v", err)
return
}
// domain
dom := analysis.Domains[0]
// element
e := dom.Elems[0].(*ElemU)
io.PfYel("fex = %v\n", e.fex)
io.PfYel("fey = %v\n", e.fey)
la.PrintMat("K", e.K, "%10.2f", false)
// solution
var sol ana.CteStressPstrain
sol.Init(fun.Prms{
&fun.Prm{N: "qnH", V: -50},
&fun.Prm{N: "qnV", V: -100},
})
// check displacements
t := dom.Sol.T
tolu := 1e-16
for _, n := range dom.Nodes {
eqx := n.GetEq("ux")
eqy := n.GetEq("uy")
u := []float64{dom.Sol.Y[eqx], dom.Sol.Y[eqy]}
io.Pfyel("u = %v\n", u)
sol.CheckDispl(tst, t, u, n.Vert.C, tolu)
}
}
示例6: PrintMemStat
// PrintMemStat prints memory statistics
func PrintMemStat(msg string) {
var mem runtime.MemStats
runtime.ReadMemStats(&mem)
io.PfYel("%s\n", msg)
io.Pfyel("Alloc = %v [KB] %v [MB] %v [GB]\n", mem.Alloc/KBSIZE, mem.Alloc/MBSIZE, mem.Alloc/GBSIZE)
io.Pfyel("HeapAlloc = %v [KB] %v [MB] %v [GB]\n", mem.HeapAlloc/KBSIZE, mem.HeapAlloc/MBSIZE, mem.HeapAlloc/GBSIZE)
io.Pfyel("Sys = %v [KB] %v [MB] %v [GB]\n", mem.Sys/KBSIZE, mem.Sys/MBSIZE, mem.Sys/GBSIZE)
io.Pfyel("HeapSys = %v [KB] %v [MB] %v [GB]\n", mem.HeapSys/KBSIZE, mem.HeapSys/MBSIZE, mem.HeapSys/GBSIZE)
io.Pfyel("TotalAlloc = %v [KB] %v [MB] %v [GB]\n", mem.TotalAlloc/KBSIZE, mem.TotalAlloc/MBSIZE, mem.TotalAlloc/GBSIZE)
io.Pfyel("Mallocs = %v\n", mem.Mallocs)
io.Pfyel("Frees = %v\n", mem.Frees)
}
示例7: main
func main() {
// finalise analysis process and catch errors
defer out.End()
// input data
simfn := "d2-simple-flux"
flag.Parse()
if len(flag.Args()) > 0 {
simfn = flag.Arg(0)
}
if io.FnExt(simfn) == "" {
simfn += ".sim"
}
// start analysis process
out.Extrap = []string{"nwlx", "nwly"}
out.Start(simfn, 0, 0)
// define entities
out.Define("top-middle", out.At{5, 3})
out.Define("section-A", out.N{-1})
out.Define("section-B", out.Along{{0, 0}, {10, 0}})
// load results
out.LoadResults(nil)
// compute water discharge along section-A
nwlx_TM := out.GetRes("ex_nwlx", "top-middle", -1)
Q := out.Integrate("ex_nwlx", "section-A", "y", -1)
io.PfYel("Q = %g m³/s [answer: 0.0003]\n", Q)
// plot
kt := len(out.Times) - 1
out.Splot("")
out.Plot("pl", "y", "section-A", plt.Fmt{L: "t=0"}, 0)
out.Plot("pl", "y", "section-A", plt.Fmt{L: io.Sf("t=%g", out.Times[kt])}, kt)
out.Splot("")
out.Plot("x", "pl", "section-B", plt.Fmt{L: "t=0"}, 0)
out.Plot("x", "pl", "section-B", plt.Fmt{L: io.Sf("t=%g", out.Times[kt])}, kt)
out.Splot("")
out.Plot("t", nwlx_TM, "top-middle", plt.Fmt{}, -1)
out.Csplot.Ylbl = "$n_{\\ell}\\cdot w_{\\ell x}$"
// show
if true {
out.Draw("", "", true, func(i, j, nplots int) {
if i == 2 && j == 1 {
plt.Plot([]float64{0, 10}, []float64{10, 9}, "'k--'")
}
})
}
}
示例8: dbg_plot
func (o *PrincStrainsUp) dbg_plot(eid, ipid int, time float64) {
if eid == o.DbgEid && ipid == o.DbgIpId {
// skip if not selected time
if o.DbgTime > -1 {
if math.Abs(time-o.DbgTime) > 1e-7 {
return
}
}
// check Jacobian
var cnd float64
io.PfYel("\nchecking Jacobian: eid=%d ipid=%d\n", eid, ipid)
cnd, err := o.nls.CheckJ(o.x, o.ChkJacTol, true, o.ChkSilent)
if err != nil {
io.PfRed("CheckJ failed:\n%v\n", err)
}
io.PfYel("after: cnd(J) = %v\n\n", cnd)
io.Pfcyan("\nN = %v\n", o.N)
io.Pfcyan("Nb = %v\n", o.Nb)
io.Pfcyan("A = %v\n", o.A)
io.Pfcyan("h = %v\n", o.h)
io.Pfcyan("Mb = %v\n", o.Mb)
io.Pfcyan("a = %v\n", o.a)
io.Pfcyan("b = %v\n", o.b)
io.Pfcyan("c = %v\n", o.c)
io.Pfcyan("Lσ = %v\n", o.Lσ)
io.Pforan("Ne = %v\n", o.Ne)
io.Pforan("Mbe = %v\n", o.Mbe)
io.Pforan("Fcoef = %v\n\n", o.Fcoef)
// plot
var plr Plotter
plr.SetFig(false, false, 1.5, 400, "/tmp", io.Sf("fig_stress_eid%d_ipid%d", eid, ipid))
plr.SetModel(o.Mdl)
plr.PreCor = o.DbgPco
plr.Plot([]string{"p,q,ys", "oct,ys"}, o.DbgRes, o.DbgSts, true, true)
}
}
示例9: Stat
// Stat prints statistical analysis
func (o *SimpleFltProb) Stat(idxF, hlen int, Fref float64) {
if o.C.Ntrials < 2 || o.Nfeasible < 2 {
return
}
F := make([]float64, o.Nfeasible)
for i := 0; i < o.Nfeasible; i++ {
o.Fcn(o.ff[0], o.gg[0], o.hh[0], o.Xbest[i])
F[i] = o.ff[0][idxF]
}
fmin, fave, fmax, fdev := rnd.StatBasic(F, true)
io.Pf("fmin = %v\n", fmin)
io.PfYel("fave = %v (%v)\n", fave, Fref)
io.Pf("fmax = %v\n", fmax)
io.Pf("fdev = %v\n\n", fdev)
io.Pf(rnd.BuildTextHist(nice_num(fmin-0.05), nice_num(fmax+0.05), 11, F, "%.2f", hlen))
}
示例10: main
func main() {
// filename
filename, fnkey := io.ArgToFilename(0, "d2-simple-flux", ".sim", true)
// start analysis process
out.Extrap = []string{"nwlx", "nwly"}
out.Start(filename, 0, 0)
// define entities
out.Define("top-middle", out.At{5, 3})
out.Define("section-A", out.N{-1})
out.Define("section-B", out.Along{{0, 0}, {10, 0}})
// load results
out.LoadResults(nil)
// compute water discharge along section-A
nwlx_TM := out.GetRes("ex_nwlx", "top-middle", -1)
Q := out.Integrate("ex_nwlx", "section-A", "y", -1)
io.PfYel("Q = %g m³/s [answer: 0.0003]\n", Q)
// plot
kt := len(out.Times) - 1
out.Splot("")
out.Plot("pl", "y", "section-A", plt.Fmt{L: "t=0"}, 0)
out.Plot("pl", "y", "section-A", plt.Fmt{L: io.Sf("t=%g", out.Times[kt])}, kt)
out.Splot("")
out.Plot("x", "pl", "section-B", plt.Fmt{L: "t=0"}, 0)
out.Plot("x", "pl", "section-B", plt.Fmt{L: io.Sf("t=%g", out.Times[kt])}, kt)
out.Splot("")
out.Plot("t", nwlx_TM, "top-middle", plt.Fmt{}, -1)
out.Csplot.Ylbl = "$n_{\\ell}\\cdot w_{\\ell x}$"
// save
plt.SetForPng(1.5, 400, 200)
out.Draw("/tmp", "seep_simple_flux_"+fnkey+".png", false, func(i, j, nplots int) {
if i == 2 && j == 1 {
plt.Plot([]float64{0, 10}, []float64{10, 9}, "'k--'")
}
})
}
示例11: main
func main() {
mpi.Start(false)
defer func() {
mpi.Stop(false)
}()
if mpi.Rank() == 0 {
io.PfYel("\nTest MPI 04\n")
}
for i := 0; i < 60; i++ {
time.Sleep(1e9)
io.Pf("hello from %v\n", mpi.Rank())
if mpi.Rank() == 2 && i == 3 {
io.PfGreen("rank = 3 wants to abort (the following error is OK)\n")
mpi.Abort()
}
}
}
示例12: do_solve
// do_solve solve nonlinear problem
func (o *PrincStrainsUp) do_solve(bsmp float64, eid, ipid int, time float64) (err error) {
silent := true
if o.DbgOn {
silent = o.dbg_silent(eid, ipid)
if !silent {
io.PfYel("\n\neid=%d ipid=%d time=%g: running with bsmp=%g\n", eid, ipid, time, bsmp)
}
}
err = o.nls.Solve(o.x, silent)
if err != nil {
if o.DbgOn {
o.dbg_plot(eid, ipid, time)
}
return
}
if o.DbgOn && o.DbgPlot {
o.dbg_plot(eid, ipid, time)
}
return
}
示例13: Test_nurbs01
func Test_nurbs01(tst *testing.T) {
//verbose()
chk.PrintTitle("nurbs01")
b := get_nurbs_A()
elems := b.Elements()
enodes := b.Enodes()
io.PfYel("enodes = %v\n", enodes)
chk.Ints(tst, "elem[0]", elems[0], []int{2, 3, 1, 2})
chk.Ints(tst, "elem[1]", elems[1], []int{3, 4, 1, 2})
chk.Ints(tst, "elem[2]", elems[2], []int{4, 5, 1, 2})
chk.Ints(tst, "enodes[0]", enodes[0], []int{0, 1, 2, 5, 6, 7})
chk.Ints(tst, "enodes[1]", enodes[1], []int{1, 2, 3, 6, 7, 8})
chk.Ints(tst, "enodes[2]", enodes[2], []int{2, 3, 4, 7, 8, 9})
if T_NURBS_SAVE {
do_plot_nurbs_basis(b, 0, 7)
plt.SaveD("/tmp/gosl", "t_nurbs01.eps")
}
}
示例14: Test_eigenp01
func Test_eigenp01(tst *testing.T) {
//verbose()
chk.PrintTitle("eigenp01")
// constants
tolP := 1e-14 // eigenprojectors
tolS := 1e-13 // spectral decomposition
toldP := 1e-9 // derivatives of eigenprojectors
ver := chk.Verbose // check P verbose
verdP := chk.Verbose // check dPda verbose
// run test
nd := test_nd
for idxA := 0; idxA < len(test_nd); idxA++ {
//for idxA := 10; idxA < 11; idxA++ {
//for idxA := 11; idxA < 12; idxA++ {
//for idxA := 12; idxA < 13; idxA++ {
// tensor and eigenvalues
A := test_AA[idxA]
a := M_Alloc2(nd[idxA])
Ten2Man(a, A)
io.PfYel("\n\ntst # %d ###################################################################################\n", idxA)
io.Pfblue2("a = %v\n", a)
io.Pfblue2("λ = %v\n", test_λ[idxA])
// check eigenprojectors
io.Pforan("\neigenprojectors\n")
λsorted := CheckEigenprojs(a, tolP, tolS, ver)
io.Pfyel("λsorted = %v\n", λsorted)
λchk := utl.DblGetSorted(test_λ[idxA])
chk.Vector(tst, "λchk", 1e-12, λsorted, λchk)
// check derivatives of eigenprojectors
io.Pforan("\nderivatives\n")
CheckEigenprojsDerivs(a, toldP, verdP, EV_ZERO)
}
}
示例15: main
// main function
func main() {
// flags
benchmark := false
ncpuMax := 16
// benchmarking
if benchmark {
var nsol, tf int
var et time.Duration
X := make([]float64, ncpuMax)
T := make([]float64, ncpuMax)
S := make([]float64, ncpuMax) // speedup
S[0] = 1
for i := 0; i < ncpuMax; i++ {
io.Pf("\n\n")
nsol, tf, et = runone(i + 1)
io.PfYel("elaspsedTime = %v\n", et)
X[i] = float64(i + 1)
T[i] = et.Seconds()
if i > 0 {
S[i] = T[0] / T[i] // Told / Tnew
}
}
plt.SetForEps(0.75, 250)
plt.Plot(X, S, io.Sf("'b-',marker='.', label='speedup: $N_{sol}=%d,\\,t_f=%d$', clip_on=0, zorder=100", nsol, tf))
plt.Plot([]float64{1, 16}, []float64{1, 16}, "'k--',zorder=50")
plt.Gll("$N_{cpu}:\\;$ number of groups", "speedup", "leg_out=1")
plt.DoubleYscale("$T_{sys}:\\;$ system time [s]")
plt.Plot(X, T, "'k-',color='gray', clip_on=0")
plt.SaveD("/tmp/goga", "topology-speedup.eps")
return
}
// normal run
runone(-1)
}